我正在研究静态文件和更新问题的一些通用解决方案
示例:假设有一个带有/static/styles.css文件的站点 - 并且站点已经使用了很长时间 - 所以很多访问者在浏览器中缓存了这个文件
现在我们在这个css文件中做了更改,并在服务器上更新,但是一些用户仍然有旧版本(尽管服务器返回了修改日期)
显而易见的解决方案 - 在文件/static/styles.css?v=1.1中添加一些版本
但在这种情况下,开发人员必须跟踪此文件中的更改并手动增加版本
解决方案2 - 计算文件的md5哈希并添加到url /static/styels.css/?v={mdp5hashvalue}
看起来好多了,但md5应该自动计算一些..
他们可能的方式我看到了 - 像这样创建一些模板标签
{% static_file "style.css" %}
Run Code Online (Sandbox Code Playgroud)
这将呈现
<link src="/static/style.css?v=md5hash">
Run Code Online (Sandbox Code Playgroud)
但是,我不希望这个标签在每个页面加载时计算md5,我不想在django-cache中存储hash,因为那样我们将在更新文件后清除..
有什么想法吗 ?
我有以下 CSS 声明:
body {font-family: Verdana, Tahoma, "Trebuchet MS", "DejuVu Sans", "Bitstream Vera Sans", sans-serif;
Run Code Online (Sandbox Code Playgroud)
它没有加载到页面上。我必须补充:
<style>
body {font-family: Verdana, Tahoma, "Trebuchet MS", "DejuVu Sans", "Bitstream Vera Sans", sans-serif;}
</style>
Run Code Online (Sandbox Code Playgroud)
使用 HTML 使其工作......这在 chrome 和 safari 中是正确的......这个很奇怪,想法?
请注意,所有其他 CSS 都可以正常工作...