[英]Static/CSS files issues in django
听起来 CSS 文件已被您的浏览器缓存。 尝试清除缓存并重新加载页面。 然后你应该看看 Django 是否加载到你的 CSS 文件中。 如果您使用 Chrome,您可以使用 CTRL + Shift + R 进行硬重新加载
您面临的问题并非特定于 Django,但您可以使用 Django 修复它。 浏览器倾向于缓存 static 文件,例如 CSS,以获得更好的性能和更低的数据消耗。
一种快速解决方法是使用浏览器清除其缓存。 解决方案取决于您的浏览器。 但是,这种方法存在两个问题。
要一劳永逸地解决这些问题,请按照以下步骤操作:
在您的settings.py
添加一个 const 并将其命名为PROJECT_VERSION
。 PROJECT_VERSION
的值应该是您项目的版本。
PROJECT_VERSION = "0.0.0.1" # replace the version number with your project version
如果没有,请创建一个templates
文件夹。
在您的templates
文件夹中创建一个名为templatetags
的文件夹
在templatetags
中,添加一个空文件并将其命名为__init__.py
添加另一个文件并随心所欲地调用它(我称之为custom_tags.py
)
在第二个文件中,添加以下内容:
from django import template from django.conf import settings import uuid register = template.Library() @register.simple_tag(name='cache_bust') def cache_bust(): if settings.DEBUG: version = uuid.uuid1() else: version = settings.PROJECT_VERSION return '__v__={version}'.format(version=version)
在您的settins.py
中,添加以下行:
TEMPLATES = [ { 'OPTIONS': { 'libraries':{ 'custom_tags': 'templates.templatetags.custom_tags', # Add this line }, }, }, ]
现在,在您的每个模板(HTML 文件)中,将其添加到顶部:
{% load custom_tags %}
最后一步,在引用任何 static 文件(CSS、JS、PNG 等)时,将?{% cache_bust %}
添加到文件名的末尾。 请注意,这不会更改文件的内容,但会强制浏览器重新获取它。 例如:
<link rel="stylesheet" type="text/css" href="{% static 'Style.css' %}?{% cache_bust %}" />
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.