django静态文件在实时更新时不会更新

时间:2018-04-29 16:48:32

标签: html css django jinja2 gunicorn

自从我使用 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很陌生,我会非常感谢任何帮助!

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

我的问题的修复实际上非常简单!

我不知道我需要运行python3 manage.py collectstatic,以便在生产中看到静态文件中的更改。

是的,下次您对静态文件进行任何更改,并希望在您的网站上看到更新时,您必须运行 collectstatic

希望这能帮助那些和我一样困惑的人!