【发布时间】:2013-08-09 18:33:30
【问题描述】:
客户端会报告我们的 JS-heavy 应用程序中的错误,我们修复了它,但客户端的浏览器仍在使用缓存的副本。这种情况经常发生,要求我们的客户刷新他们的浏览器缓存似乎非常低技术和麻烦。
我们知道?ver=xxx 解决方法,但我们使用RequireJS,因此应用这样的hack 并不容易。
HTTP 缓存控制会起作用吗?但是,我们注意到 IIS 不会立即获取 JS 文件更改,并且 HTTP 标头(上次修改)没有反映最新的更改。
ETag 会更好吗?与上次在 IIS 上修改相比是更好还是更差?
还有其他解决方案吗?谢谢
【问题讨论】:
-
那么您是否使用 RequireJS 加载所有脚本?
-
不是全部,但如果
?ver=仍然是最好的方法,那么我们将继续使用它。 -
好吧,正确使用缓存的“最佳”方式是将 URL 设置为:
/resources/cachebusterValueHere/js/script.js,当您的项目需要新版本时,您将更新cachebusterValueHere。这将需要您更改服务器映射此 URL 的方式,并且不应该太难。而且您必须设置您的服务器以使用正确的标头以确保它们被缓存
标签: javascript iis coldfusion requirejs http-caching