【发布时间】:2012-02-26 04:23:58
【问题描述】:
我正在研究解决静态文件和更新问题的通用解决方案。
示例:假设有一个带有 /static/styles.css 文件的站点 - 并且该站点被使用了很长时间 - 所以很多访问者在浏览器中缓存了这个文件
现在我们在这个css文件中进行更改,并在服务器上更新,但有些用户仍然有旧版本(尽管服务器返回了修改日期)
显而易见的解决方案是向文件 /static/styles.css?v=1.1 添加一些版本,但在这种情况下,开发人员必须跟踪此文件中的更改并手动增加版本
第二种解决方案是计算文件的 md5 哈希并将其添加到 url /static/styels.css/?v={mdp5hashvalue} 看起来好多了,但 md5 应该以某种方式自动计算。
他们可能的方式我看到它 - 创建一些这样的模板标签
{% static_file "style.css" %}
会渲染的
<link src="/static/style.css?v=md5hash">
但是,我不希望这个标签在每次页面加载时都计算 md5,我也不希望将哈希存储在 django-cache 中,因为那样我们将不得不在更新文件后清除...
有什么想法吗?
【问题讨论】:
-
这个问题已经有很多解决方案了,从那里开始,例如。 djangopackages.com/grids/g/static-builders 正如@ChrisPratt 建议的那样!
标签: python django django-staticfiles