我的 max-age header 来自哪里?

Where is my max-age header coming from?

我很清楚如何自己设置它,但我担心在两个不同的地方配置它。要获得赏金,请告诉我应该在哪里寻找 existing 设置。

我们已经寻找现有设置但没有成功的地方:

上下文

我们最近注意到我们的 CSS 和 JS 文件没有得到刷新。当我检查网络流量时,它们从服务器返回 header (Cache-Control: max-age=604800),这给了它们 seven-day 生命周期。

我们需要缩短缓存寿命。但是我这辈子都找不到设置它的地方。

不是在web.config<StaticContent>部分设置的

IIS输出缓存部分不是设置(我在机器、站点和应用程序下查看--它们都是空白)。

不是 在代码中设置的——我对 SetMaxAge 进行了全局代码搜索,结果一无所获。 我还能去哪里看?

是否可能是由我们数据中心的网关或负载均衡器设置的?

您可以在 web 配置中这样做,或者您可以使用 IIS ui 进行更改(参见下面的 link):

<configuration>
  <system.webServer>
    <staticContent>
       <clientCache cacheControlMode="UseMaxAge"
        cacheControlMaxAge="1.00:00:00" /> <!-- 1 day -->
    </staticContent>
  </system.webServer>
</configuration>

在此处查看更多内容:https://www.iis.net/configreference/system.webserver/staticcontent/clientcache

IIS 文档指出默认值为 1 天。

以下是可能影响这些设置的其他一些方式: http://www.galcho.com/blog/post/2008/02/27/IIS7-How-to-set-cache-control-for-static-content.aspx

  • overrideModeDefault 值 applicationHost.config
  • 较早的 appcmd.exe 设置
  • 或者客户端设置也可以覆盖您的值。