关于我的问题有很多问题和答案[我希望浏览器永远缓存js / css。在新版本中,如果某些js / css文件已更新,浏览器应重新加载并缓存它们。]
这个解决方案对我来说似乎最合适: What is an elegant way to force browsers to reload cached CSS/JS files?
但是,我无法弄明白一件事。 该解决方案使用last_modified_time。但是,我不允许使用它。我需要使用其他一些机制。
有哪些选择?是否有可能在构建期间预先计算版本并通过构建脚本在jsps中更新(替换)它们(在部署之前,以便版本号不在运行时计算)?用于此目的的任何现有工具?我使用Java / Jsp。
答案 0 :(得分:2)
我们总是使用
file.css?[deploytimestamp]
这样,CSS文件就会缓存在客户端的每个部署中。我们的缩小javascript也是如此。这是你的选择吗?
答案 1 :(得分:2)
这可能不是最好的方式,但这就是我现在正在做的事情:
答案 2 :(得分:1)
部署后生成每个css文件的md5-hash。使用此哈希而不是css网址中的时间戳。
file.css?[hash of file.css contents]
在部署之后计算哈希值并将其存储以获得一些性能可能是明智之举。您可以将它们存储在数据库中,甚至可以存储在网站代码中包含的单独文件中的PHP数组中。