对于(企业)Web 项目,我想保留静态文件的先前版本,以便项目可以自行决定何时准备好实现设计更改。我最初的计划是为静态内容提供文件夹,如下所示:
company.com/static/1.0.0/
company.com/static/1.0.0/css/
company.com/static/1.0.0/js/
company.com/static/1.0.0/images/
company.com/static/2.0.0/
company.com/static/2.0.0/css/
company.com/static/2.0.0/js/
company.com/static/2.0.0/images/
这些文件夹中的每个文件都应该有一个缓存策略来“永远”缓存——至少一年。我还计划将 css 文件和 js 文件连接成一个,以尽量减少请求数量。
然后我还会提供一个当前
文件夹(其中符号链接(symbolic link)到最新发布的版本)
company.com/static/current/
company.com/static/current/css/
company.com/static/current/js/
company.com/static/current/images/
这将解决我的第一个问题(项目和子网站可以将其代码锁定到某个版本,并且可以在准备好时进行升级)。
但是我可以看到一些缓存问题。现在我不能“仅”缓存当前
文件夹,因为它会随着每个版本的变化而变化。我对该文件夹的缓存策略应该是什么。
此外,对于每个版本,大多数静态文件无论如何都不会改变。永久缓存它们并在发生更改时重命名是否相关?
我在这里寻求建议,因为我想知道缓存和更改文件之间的最佳权衡。
最佳答案
注意 HTTP 缓存。我前段时间研究过这个。 my blog article on the HTTP caching
关于caching - 版本控制和缓存静态文件 : CSS, JS、图像 -- 需要考虑的事项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9599468/