首页 > 解决方案 > django 静态文件在直播时不会更新

问题描述

因此,自从我使用django使我的网站上线以来已经有一段时间了,所以我决定对一些 css 和 js 文件进行一些更改。

修改它们后,尚未将任何新更改更新到网站。我知道文件可能已被缓存,但我读过有一种技术可以通过?version=x在文件路径后添加来强制服务器更新文件。

例如:<link rel="stylesheet" type="text/css" href="style.css?version=1">

问题是使用django时,我没有完全像那样引用静态文件,而是不得不使用一些jinja 逻辑

例子:<link rel="stylesheet" type="text/css" href="{% static mainpage/HomePage.css' %}" />

我尝试添加?version=1到我的文件路径的末尾,但是在我在浏览器上查看网站后,一些 css 似乎丢失了,所以我决定回到我原来的链接。

有谁知道我如何应用添加?version=1到我的案例的解决方案?我对 css 和 html 很陌生,如果有任何帮助,我将不胜感激!

标签: htmlcssdjangojinja2gunicorn

解决方案


尝试使用“空缓存和硬重新加载”(在浏览器中打开开发工具(谷歌浏览器)右键单击刷新按钮)来确认问题是由缓存引起的。如果是这样,并且您的更改在硬重新加载后出现,请设置 ManifestStaticFilesStorage https://docs.djangoproject.com/en/2.0/ref/contrib/staticfiles/#manifeststaticfilesstorage来处理此问题。它将文件的哈希添加到其名称中,因此文件内容的任何更改都会导致名称更改,并且浏览器将下载新文件。


推荐阅读