我已经对我的网站进行了Google的页面速度测试,它告诉我要“利用浏览器缓存”。
我对此做了一些研究,发现我需要在IIS 6中启用内容过期。我这样做了,并将内容设置为每30天过期一次。然后,我再次对我的网站进行了页面速度测试,仍然得到了“利用浏览器缓存”的建议。
我还通过http://web-sniffer.net查看了网站返回的内容,返回的结果是缓存控制:私有。
然后我在网页表单中尝试了<%@ OutputCache Duration="30" VaryByParam="none" %>,现在返回缓存控制:公共,最大年龄=30,我猜这是正确的,但谷歌页面速度测试仍然返回我的网页上没有过期的资源列表(主要是图像)。
在这个问题上我很困惑。我一直以为网站会继承IIS设置,但在我打开页面上的outputcache之前,情况并非如此。有没有办法让网站使用IIS设置,还是必须逐页完成?
发布于 2011-10-19 01:36:23
尝试将以下内容添加到窗体中的代码隐藏中:
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
发布于 2011-10-18 23:55:42
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
https://stackoverflow.com/questions/7810039
复制相似问题