IIS7 cacheControlMaxAge属性不起作用

时间:2012-09-29 00:45:27

标签: asp.net-mvc caching https iis-7.5 browser-cache

在IIS 7.5中,我将cacheControlMaxAge设置为一年如此

<location path="Content/Images">
    <system.webServer>
      <staticContent>
        <clientCache cacheControlCustom="public" cacheControlMode="UseMaxAge" cacheControlMaxAge="365.00:00:00" />
      </staticContent>
    </system.webServer>
  </location>

根据本指南:Setting Expires and Cache-Control: max-age headers for static resources in ASP.NET

但是,Google PageSpeed工具仍然表示文件未缓存:

The following cacheable resources have a short freshness lifetime. Specify an expiration at least one week in the future for the following resources:
* https://local.example.com/Content/Images/image1.png (expiration not specified)
(etc)

为什么说“未指定过期”?

整个网络应用程序都是通过https提供的,这是一个因素吗?

2 个答案:

答案 0 :(得分:5)

我通过将Content/Images指定的路径更改为Content

来解决此问题
<location path="Content">
    <system.webServer>
      <staticContent>
        <clientCache cacheControlCustom="public" 
                     cacheControlMode="UseMaxAge" 
                     cacheControlMaxAge="365.00:00:00" />
      </staticContent>
    </system.webServer>
  </location>

所以它是固定的,但路径的改变并不能说清楚问题究竟是什么。

答案 1 :(得分:0)

我发现Google PageSpeed在某些情况下需要一些时间来赶上&#39;你最近做出的改变。确保您已完成整页刷新并点击PageSpeed本身的刷新按钮。如果做不到这一点,在Firefox上使用Firebug似乎总能在网络标签中给出准确的结果。单击文件旁边的加号图标并检查响应标头。