我已将我的网站通过Google的pagespeed测试,它告诉我“利用浏览器缓存”。
我对此做了一些研究,发现我需要在IIS 6中启用内容过期。我这样做并将内容设置为每30天过期一次。然后我再次通过pagespeed测试我的网站,它仍然提出了“利用浏览器缓存”建议。
我还将网站放到http://web-sniffer.net以查看最新消息,然后通过Cache-Control返回:私有。
然后我在网络表单中尝试了<%@ OutputCache Duration="30" VaryByParam="none" %>
,现在它又回来了Cache-Control:public,max-age = 30,我猜这是正确的行,但google页面速度测试仍在回归我的网页上的资源列表(主要是图片)没有过期。
我对这个问题很困惑。我的印象是网站将继承IIS设置,但直到我打开页面上的outputcache才会出现这种情况。有没有办法让网站使用IIS设置,或者是否必须逐页完成?
答案 0 :(得分:0)
Pagespeed可能指的是静态资源,如js,css,png,gif等文件。 默认情况下,IIS内容过期不适用于这些文件。您需要手动编辑IIS元数据库。
http://www.galcho.com/Blog/post/2008/02/27/IIS7-How-to-set-cache-control-for-static-content.aspx
答案 1 :(得分:0)
尝试将以下内容添加到表单中的代码隐藏中:
Response.Cache.SetCacheability(HttpCacheability.Server);
Response.Cache.SetExpires(DateTime.Parse("6:00:00PM"));
http://msdn.microsoft.com/en-us/library/system.web.httpcachepolicy.aspx
HttpCacheability枚举:
http://msdn.microsoft.com/en-us/library/system.web.httpcacheability.aspx