我怎么能强制浏览器检查新版本,尽pipecaching指令最多30天?

我在我的网站的根目录中有以下声明:

<staticContent> <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="30.00:00:00" /> </staticContent> 

我认为这告诉浏览器不要寻找任何文件的新版本,除非它超过30天 – 是正确的吗?

这不是我的意图,我修改了这个指令,但是尽pipe有些浏览器现在正在更新,但有些不是。 有没有办法强制浏览器寻找一个新的版本立即生效?

谢谢。

如果浏览器没有请求这个文件(直到它过期),那么你就不会给它一个新的caching指令。

但是,我注意到staticContent位。 如果这只适用于静态内容,而不是你的html页面(可能是dynamic的),那么你可以改变HTML中引用的URL。 这可能或不是一个容易的事情来组织,取决于你如何产生你的内容,但这是一个非常完善的战略。

例如,你可以把你的css文件path(或类似的任何其他静态内容引用),再加上最后一次更改的时间戳,连接这些string,并对它们进行md5散列。 然后在您的html中使用像http://example.com/static/ {your_md5sum} .css这样的URL,然后将该CSS内容的副本或符号链接closures以准备在该path上投放。 然后,您可以始终提供多年到期时间的CSS链接,但只要您想要停止使用旧版本。 如果你想保留旧版本,这也是一件好事,因为它们可以处理旧版本的人们可能已经复制到networking上的其他地方,旧电子邮件或任何(后者更多的图像比CSS)。

稍微简单一些的机制可能只是将时间戳添加到像http://example.com/foo/bar.css?t=1377075018这样的path中,时间戳取自本地服务器上文件的修改时间&#x3002;