0

在我的 MVC3 项目中,我在一些控制器上设置了以下类级属性:

 [OutputCache(Location = System.Web.UI.OutputCacheLocation.Server, Duration = 14400, VaryByParam = "*")]

持续时间 = 四个小时。

我使用VaryByParam = "*"的是控制器的操作方法有不同的参数,而不是 VaryByParam = "none"- 这是正确的用法吗?

在 IIS 中,在服务器级别和我网站的所有 web.config 文件中,我将静态缓存设置为八天。

观察 Fiddler 中的标题,当我转到搜索结果页面时,我看到以下内容:

HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Type: text/html; charset=utf-8
Expires: -1
Vary: Accept-Encoding
Server: Microsoft-IIS/7.5
X-AspNetMvc-Version: 3.0
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Thu, 15 Aug 2013 17:21:32 GMT
Content-Length: 148842

对于我的站点脚本 js 文件:

HTTP/1.1 200 OK
Cache-Control: max-age=691200
Content-Type: application/x-javascript
Last-Modified: Thu, 15 Aug 2013 05:35:35 GMT
Accept-Ranges: bytes
ETag: "10906a447999ce1:0"
Vary: Accept-Encoding
Server: Microsoft-IIS/7.5
X-Powered-By: ASP.NET
Date: Thu, 15 Aug 2013 17:21:32 GMT
Content-Length: 2999

对于CSS:

HTTP/1.1 304 Not Modified
Cache-Control: max-age=691200
Last-Modified: Wed, 07 Aug 2013 21:31:28 GMT
Accept-Ranges: bytes
ETag: "f08ce079b593ce1:0"
Server: Microsoft-IIS/7.5
X-Powered-By: ASP.NET
Date: Thu, 15 Aug 2013 17:21:33 GMT

使用 Google 的 PageSpeed 附属公司 ( http://www.webpagetest.org/ ),我的页面可以达到 90/100 左右 - 页面加载时间约为 4 秒,报告显示 0.47 秒优化 - 查看令人困惑的结果在这里。当我在原始与优化的 WebPageTest 上播放视频时,我的原始在 2.5 秒内完成(并且速度指数较低)并在 4.7 秒内完成优化。

Google 的 PageSpeed Insights 建议优化 CSS 交付。我已经在异步提供 CSS。

当我在 AWS 上进行托管时,我将实例上的资源提升到他们最强大的服务器实例之一。页面加载时间与我的常规实例大致相同。

所以我对上面的第一个结果感到困惑: Cache-Control: no-cache 。我是否没有正确实现缓存,如果没有,我错过了什么?

4

0 回答 0