我的max-age标头来自哪里?

时间:2016-11-09 01:56:53

标签: asp.net iis iis-7 cache-control outputcache

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

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

  • web.config <StaticContent>部分
  • IIS输出缓存部分,共有三个级别:
    • 位点
    • 应用
  • 代码(我对SetMaxAge进行了全局搜索)

上下文

我们最近注意到我们的CSS和JS文件没有刷新。当我检查网络流量时,他们会从服务器返回一个标题(Cache-Control: max-age=604800),为他们提供7天的生命周期。

我们需要缩短缓存生命周期。但是对于我的生活,我无法找到它的位置。

在web.config <StaticContent>部分设置了

在IIS输出缓存部分中设置 not (我查看了机器,网站和应用程序 - 它们都是空白的。)

在代码中设置了 - 我对SetMaxAge进行了全局代码搜索并获得了nuthin&#39;。 我还能在哪里看看?

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

1 个答案:

答案 0 :(得分:3)

您可以在Web配置中执行此操作,也可以使用IIS ui进行更改(请参阅下面的链接):

<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

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