Django CSS未更新

37

我有这段代码来引用我的CSS样式表,它在我的Django项目的base.html中:

<link href="{% static 'css/project.css' %}" rel="stylesheet">

问题是每次我添加或删除project.css的样式时,当我运行服务器时它不会更新。

我知道这是因为每次页面加载时,浏览器缓存都会认为它之前见过该文件,并重新从磁盘中重载缓存版本。 我也知道一个解决方法是每次更新时更改CSS文件名。

有没有更简单的方法可以在刷新浏览器时重新加载CSS文件?

11个回答

108

所以这应该是Django的问题还是浏览器的问题。太蠢了... - Alston

18

每次更新CSS时,您都需要点击Ctrl + f5,这样做并不好。实际上,您可以像这样操作:

<link rel="stylesheet" href="/static/css/mycss.css?{% now "U" %}"/>

{% now "U" %}会生成一个随机时间戳,每次重新加载页面时都会更新您的CSS。我希望这个方法有效。

为了更好地理解,请查看:点击这里


6

如果您使用的是Mac电脑并且正在使用Safari浏览器,您可以按下shift键,然后再按重新加载键。


7
这个方法真的有效。如果你不想使用鼠标,按下 shift + cmd + R - tfad334

2
在开发过程中(当settings.py中DEBUG设置为True时),如果更改STATIC_ROOT目录下的静态文件,而不是特定应用程序下的静态目录,则会出现此问题。
换句话说,在本地工作(localhost)且DEBUG设置为True时,请勿忘记更改在应用程序目录下提供的静态文件。

2
绕过缓存——简单指南
在大多数Windows和Linux浏览器中:
按住Ctrl键并按下F5
在Apple Safari中:
按住⇧ Shift键并单击重新加载工具栏按钮。 在Chrome和Firefox for Mac中:
同时按住⌘ Cmd+⇧ Shift键,然后按R键。 了解更多

2

在Chrome和Windows中使用ctrl+f5有所帮助。


1
除了Xamuel San的答案外,如果您正在使用Jinja链接样式表,则可以尝试以下操作:
<link rel="stylesheet" type="text/css" href='{% static '/css/main.css' %}?{% now "U" %}'>

它在Chrome和Firefox上完美运行。您也可以使用crtl+f5手动执行相同的操作。


1
在 Chrome 中,您可以按 Ctrl + F5。如果这不起作用,请重新启动 Apache。

0

我倾向于暂时禁用浏览器缓存。

右键点击 => 检查 => 网络

[]禁用缓存


0

大多数浏览器都允许您在某种程度上禁用HTTP缓存。在Mozilla中,如果您正在使用Web开发工具,则有一个设置可以实现此操作。

Mozilla Web Dev Tool Settings


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接