【发布时间】:2012-08-12 19:22:27
【问题描述】:
有很多关于我的问题的问题和答案[我希望浏览器永远缓存 js/css。在新版本中,如果某些 js/css 文件已更新,浏览器应重新加载并缓存它们。]
这个解决方案对我来说似乎最合适: What is an elegant way to force browsers to reload cached CSS/JS files?
但是,只有一件事我无法弄清楚。 该解决方案利用 last_modified_time。但是,我不允许使用它。我需要使用其他机制。
有哪些选择?是否有可能在构建期间预先计算版本并通过构建脚本在 jsps 中更新(替换)它们(在部署之前,以便不在运行时计算版本号)?为此目的有任何现有工具吗?我使用 Java/Jsp。
【问题讨论】:
-
有点烦人的解决方案,但您可以将修订号保存在文件中,并通过 PHP 将其动态附加到 css 文件名。但是每次你想强制用户 realod CSS 你需要编辑这个文件。
-
“但是,我不允许使用它”为什么?
-
@GolezTrol 因为一些遗留的构建过程。部署中所有文件的最后修改时间更改与它们的更改无关。
-
@neworld 你是在建议我保留一个
的存储库吗?或者我应该将修订号存储在 css 文件本身中(暂时可以使用 SVN 来完成)。在每个参考文献中,我都会阅读此文件并使用参考文献中的版本号? -
@TJ-:不管你把它存储在哪里。如果需要,可以存储在 DB 中。这种方法有一个好处,如果你做了不是很重要的升级,你可以不强制重新加载(修改cmet或css格式化)。
标签: javascript css caching continuous-deployment auto-versioning