我使用 IIS 6 和 IIS 7 作为网络服务器。
在谷歌网页在线速度之后,它会说我应该:Setting an expiry date or a maximum age in the HTTP headers for static resources instructs the browser to load previously downloaded resources from local disk rather than over the network.
它列出了很多简单的图像,我的 javascript文件和样式表。
我如何为这些静态文件设置此到期日期?我以为这是由浏览器自动完成的?
答案 0 :(得分:29)
利用浏览器缓存:
设定有效期或最长期限 静态HTTP标头中的年龄 资源指示浏览器 加载以前下载的资源 从本地磁盘而不是 网络
http://code.google.com/speed/page-speed/docs/caching.html#LeverageBrowserCaching
在静态资源的HTTP标头中设置到期日期或最长期限
打开IIS管理器 - >点击您的网站 - >单击主页中的HTTP响应标头 - >单击“动作”面板上的“设置公共标题” - >检查过期网页内容 - > 7天后设置(按照页面速度分析中的建议“为以下资源指定将来至少一周的到期时间”
http://technet.microsoft.com/en-us/library/cc770661%28WS.10%29.aspx
答案 1 :(得分:3)
有时谷歌工具会抱怨如果你没有设置Cache-Control max-age和Expires标题,IIS只会设置max-age,这应该没问题。您可以使用chrome或firebug进行确认,并查看Net Debug面板并检查响应标头。
答案 2 :(得分:2)
设置静态文件的到期日期应该在IIS的Web.config文件中完成。我对ISS知之甚少,但在网上发现了这个
<caching>
<profiles>
<add extension=".php" policy="DisableCache" kernelCachePolicy="DisableCache" />
<add extension=".html" policy="CacheForTimePeriod" kernelCachePolicy="CacheForTimePeriod" duration="14:00:00:00" />
</profiles>
</caching>
上述代码将启用.html文件的缓存最多14天。对于.php文件,请确保不执行缓存。
有关详情,请参阅http://www.iis.net/configreference/system.webserver/staticcontent/clientcache