我正在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工具来监控网络流量。我看到浏览器正在使用该文件的缓存版本。
是否有任何其他设置会强制浏览器使缓存的文件过期?
答案 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?。