Kra*_*ram 5 iis caching static-content
我们有一个相当大量的IIS7.0站点(每天约100万个请求),其中很多是Images/CSS/JS.
作为一种减少这种情况的快速方法,我正在考虑设置常见的http响应标头,以便将来某个固定的日期方式使网络内容过期,并且想知道我们可以通过这种方式获得哪些可能的缺点.
查看设置此内容所导致的web.config更改,它添加:
<staticContent>
<clientCache cacheControlMode="UseExpires" cacheControlMaxAge="1.00:00:00" httpExpires="Thu, 01 Oct 2020 00:00:00 GMT" />
</staticContent>
Run Code Online (Sandbox Code Playgroud)
我担心的是,如果我们想在设置之后更改其中一个CSS/JS/Images,客户端就不会接收更改,虽然图像可能不会改变,但CSS/JS肯定会.这是否意味着我们应该只设置这对包含文件夹只图像?或者这是否意味着我们需要为CSS/JS引入版本化的URL?
你应该总是缓存静态内容(图像,CSS,JS)
即使在缓存时,大多数浏览器仍会礼貌地询问服务器是否有更新的版本(If-Modified-Since),服务器将回复Not Modified.(例如,IE默认为"自动检查新版本的页面")
需要注意的是:如果您的服务器和客户端之间存在其他代理,那么这些代理可能会严格选择遵守您的缓存设置,并且可以提供"陈旧"内容,因此您需要对缓存的最佳持续时间进行一些考虑.