如何在IIS中的静态资源的HTTP标头中设置到期日期或最长期限

时间:2011-04-06 03:57:43

标签: caching iis

我使用 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文件样式表

我如何为这些静态文件设置此到期日期?我以为这是由浏览器自动完成的?

3 个答案:

答案 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知之甚少,但在网上发现了这个

http://www.iis.net/learn/application-frameworks/install-and-configure-php-applications-on-iis/translate-htaccess-content-to-iis-webconfig

<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