新部署,第一次加载页面时浏览器缓存被清除。

3

情况:

  • 应用已部署并在使用中。

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

  • 应用重新部署

  • 用户看不到 JavaScript 的更改,除非他们清除缓存。

这会带来一些不小的问题。

是否有办法:

  1. 自动清除缓存并
  2. 只在第一次加载时(之后像平常一样缓存),当一个新部署被发布时?
2个回答

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

0
你可以在文件名后面添加一个参数,例如:path/to/styles.css?deployed=20130424 和 path/to/scripts.js?deployed=20130424。

谢谢juuga。这个方法可以行得通,但是我希望有一个更简单的解决方案。这需要部署脚本在页面加载时设置某个配置文件中的值。在确认你的答案正确之前,我会等待可能更好的解决方案。非常感谢。 - John
@user1488103 在URL中添加参数是所谓的“缓存破坏”的常见做法(搜索一下就会找到更多信息)。甚至RequireJS也有一个选项来定义它们... - excentris
不客气。你也可以通过为JS和CSS文件设置头部来处理缓存。过期时间和最后修改时间可能是你要找的(很抱歉我不能给你一个确切的答案)。 - juuga

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接