浏览器缓存未到期

时间:2017-03-29 17:47:11

标签: asp.net browser-cache cache-control

我正在asp.net中开发我的应用程序,并希望在一段时间后强制刷新.js文件。为了在本地环境中测试,我对我的web.config文件进行了以下更改:

<httpProtocol>
  <customHeaders>
    <add name="Cache-Control" value="must-revalidate max-age=120" />
  </customHeaders>
</httpProtocol>

据我了解缓存控制,基于以上设置,浏览器缓存应在2:00分钟后过期,任何新的回发都应向webserver发送请求,以检查.js的新版本是否可用。我用fiddler来监控网络流量,但我没有看到任何js文件的请求。我使用的浏览器是Chrome。所以我用dev工具来监控网络流量。我看到浏览器正在使用该文件的缓存版本。

是否有任何其他设置会强制浏览器使缓存的文件过期?

1 个答案:

答案 0 :(得分:1)

您的$n -= 1无效,请尝试使用逗号分隔值:Cache-Control

RFC 7234 Hypertext Transfer Protocol (HTTP/1.1): Caching的相关摘录:

  

Cache-Control = 1 #cache-directive

     

cache-directive = token [“=”(token / quoted-string)]

来自RFC 7230 Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing的ABNF列表扩展:

  

定义构造“#”,类似于“*”,用于定义      以逗号分隔的元素列表。完整形式是“&lt; n&gt;#&lt; m&gt;元素”      至少指示&lt; n&gt;并且至多&lt; m&gt;元素,每个元素用一个      单个逗号(“,”)和可选的空格(OWS)。

还要确保将新配置放在正确的位置。有关详细信息,请查看Is it possible to add response http headers in web.config?