7

在 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>

根据本指南:设置过期和缓存控制: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)

为什么它说“未指定到期”?

整个 webapp 都是通过 https 提供的,这是一个因素吗?

4

2 回答 2

5

我通过将指定的路径从更改Content/Images为刚刚解决了这个问题Content

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

所以它是固定的,但是路径的改变并不能说明问题到底是什么。

于 2014-03-18T00:39:19.560 回答
0

我发现 Google PageSpeed 在某些情况下需要一些时间来“赶上”您最近所做的更改。确保您已完成整页刷新并点击 PageSpeed 本身的刷新按钮。如果做不到这一点,在 Firefox 上使用 Firebug 似乎总是在 net 选项卡中给出准确的结果。单击文件旁边的加号图标并检查响应标头。

于 2013-07-29T17:17:10.537 回答