【发布时间】:2014-11-23 15:44:46
【问题描述】:
我刚刚部署了一个 Django 应用程序,其中大部分前端代码都在 Javascript 文件中。问题是,每当我对我的 JS 文件进行更新时,如果有人打开页面,这并不会反映出来,因为他们得到 '200 (Cached)' 响应,并且正在获取以前的版本的静态文件。 CTRL-F5 当然可以解决这个问题。
处理此问题的最佳方法是什么?这样的问题哪里可以解决?
Django 响应中的标题?
一些 Apache 配置(因为静态文件是服务器直接来自 阿帕奇)
- 还有别的吗?
我不想在每次更改后都重命名文件,这对我来说似乎不是一个干净的解决方案。有什么合适的技术可以实现这一点吗?
我注意到的一件事是,我收到的 200 (cached) 响应的标题中有这些:
Expires:Fri, 28 Nov 2014 04:11:29 GMT
Last-Modified:Sun, 28 Sep 2014 19:43:58 GMT
最后修改的事实应该是 2014 年 9 月 29 日 09:14 GMT 左右。可能与Expires 标头有关吗?如果是,我应该如何设置过期时间,也许是一天或更短的时间?再说一次,我想这必须通过 Apache 来完成?
注意:由于缓存导致的性能增益/损失在这里绝对不是问题。
【问题讨论】: