Html 远程清除IE缓存

Html 远程清除IE缓存,html,caching,browser,Html,Caching,Browser,我们最近推出了一个新的CMS解决方案。但是,我们没有意识到,默认情况下,此解决方案不会向HTML页面添加无缓存标头等 虽然我们现在已经解决了这个问题,但是我们使用IE的访问者尤其拥有大量HTML页面的缓存(包括对旧CSS和JS文件的引用) 对于那些在上线后的第一个月访问该网站的用户,有没有一种方法可以破坏缓存?因为我担心我们的设计和JS功能无法成功推进,因为人们使用的是旧的缓存版本。假设有一个中心URL生成功能,跟踪它并始终将?\u version=2(或者&\u version=2,如果URL

我们最近推出了一个新的CMS解决方案。但是,我们没有意识到,默认情况下,此解决方案不会向HTML页面添加无缓存标头等

虽然我们现在已经解决了这个问题,但是我们使用IE的访问者尤其拥有大量HTML页面的缓存(包括对旧CSS和JS文件的引用)


对于那些在上线后的第一个月访问该网站的用户,有没有一种方法可以破坏缓存?因为我担心我们的设计和JS功能无法成功推进,因为人们使用的是旧的缓存版本。

假设有一个中心URL生成功能,跟踪它并始终将
?\u version=2
(或者
&\u version=2
,如果URL中已经有问号)附加到所有URL


这对您的web应用程序没有影响(除非它使用_versionget字段),但会模拟所有链接资源的更改URL。由于始终会请求初始URL(例如,
/
),这将使任何浏览器重新下载所有资源。

对页面的请求是否通常返回上次修改的
标题?这是我有经验的唯一可靠的破缓存方法

大多数浏览器在缓存某些内容时,如果未修改,则会发送
,因为
请求头(除非此CMS上的默认缓存行为是设置显式缓存过期日期,这是极不寻常的)。因此,您需要做的就是在响应中发出一个
Last Modified:[date you added no cache headers]
头,一个行为正常的HTTP服务器将向客户端发送完整的更新HTML页面


虽然这种半身像适用于CSS和JS等文件,但如果每次请求都重新下载HTML,则这种半身像也适用。IE(到目前为止我已经测试了6-8)似乎没有重新请求它缓存的HTML。也许这是一个“代理背后”的问题,但我知道IE会像Jon Skeet的大脑一样缓存—所以我认为它更像是一个浏览器问题—还尝试了IIS重写规则—附加查询字符串。但由于浏览器没有重新请求URL的标题,因此它看不到要重定向的
位置
标题。PS-如果您的URL使用查询参数-请确保更新Google/Bing网站管理员工具,以便它们不会列出您的查询字符串附加URL:)任何特定版本或所有版本?我至少关心IE7和8,尽管这不是我的问题,这确实让我思考-我发现我的问题是我的
缓存控制
头被设置为
无缓存
。。。问题是我们的办公室(以及我们的大多数客户群)都支持代理——我只是将
缓存控制更改为
私有,最大年龄=0
。我们还有
Expires
作为
-1