【问题标题】:New deployment, have browser cache cleared the first time the page is loaded新部署,第一次加载页面时清除浏览器缓存
【发布时间】:2013-04-24 11:34:20
【问题描述】:

情况:

  • 已部署并正在使用的应用程序。

  • 已更新 JavaScript / jQuery(在 .js 文件中)。

  • 应用重新部署

  • 除非清除缓存,否则用户不会看到 JavaScript 更改。

这提出了不平凡的问题。

有没有办法清除缓存:

  1. 自动和
  2. 在推出新部署时首次加载(之后正常缓存)?

【问题讨论】:

    标签: javascript jquery deployment browser-cache web-deployment


    【解决方案1】:

    使用jawr,这将根据更改为每个文件创建哈希(如果文件未更改,则不会为该文件创建新哈希)https://jawr.java.net/

    【讨论】:

      【解决方案2】:

      您可以在文件名中添加参数。比如:path/to/styles.css?deployed=20130424 和 path/to/scripts.js?deployed=20130424

      【讨论】:

      • 谢谢juuga。这可以工作,但是,我希望有一个更简单的解决方案。这要求部署脚本在页面加载时读取的某个配置文件中设置一个值。在将您的答案标记为正确之前,我会坚持寻找可能更好的解决方案。非常感谢。
      • @user1488103 附加 url 参数是所谓的 cache busting 的常见做法(谷歌一下,你会找到更多信息)。甚至RequireJS has an option to define them...
      • 不客气。您还可以通过设置 JS 和 CSS 文件的标头来使用缓存。 Expires 和 Last-modified 可能是您要查找的内容(抱歉,我无法给您确切的答案)。
      猜你喜欢
      • 2018-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多