Python django中的静态/CSS文件问题
我刚刚接触django,在为登录和注销制作了一个简单的身份验证表单之后。一切都很好,但每当我想对样式(CSS)进行一些更改时,它就不起作用了。我尝试过改变静态文件的目录,但都没有成功。即使我从CSS文件中删除了所有代码,页面仍然会显示所有与样式相关的内容。请告诉我该怎么办?下面我附上了我所有代码和目录的图片Python django中的静态/CSS文件问题,python,django,django-static,Python,Django,Django Static,我刚刚接触django,在为登录和注销制作了一个简单的身份验证表单之后。一切都很好,但每当我想对样式(CSS)进行一些更改时,它就不起作用了。我尝试过改变静态文件的目录,但都没有成功。即使我从CSS文件中删除了所有代码,页面仍然会显示所有与样式相关的内容。请告诉我该怎么办?下面我附上了我所有代码和目录的图片 听起来CSS文件已经被浏览器缓存了。尝试清除缓存并重新加载页面。然后,您应该查看Django是否正在加载CSS文件。如果你使用Chrome浏览器,你可以用CTRL+Shift+R进行硬加载,
听起来CSS文件已经被浏览器缓存了。尝试清除缓存并重新加载页面。然后,您应该查看Django是否正在加载CSS文件。如果你使用Chrome浏览器,你可以用CTRL+Shift+R进行硬加载,听起来CSS文件已经被浏览器缓存了。尝试清除缓存并重新加载页面。然后,您应该查看Django是否正在加载CSS文件。如果你使用Chrome,你可以用CTRL+Shift+R进行硬重新加载,你面临的问题不是Django特有的,但是你可以用Django解决。 浏览器倾向于缓存静态文件,如CSS,以获得更好的性能和更低的数据消耗。
一个快速修复方法是使用浏览器清除缓存。解决方案取决于您的浏览器。然而,这种方法有两个问题
settings.py
中添加一个常量,并将其命名为PROJECT\u VERSION
。PROJECT\u VERSION
的值应为项目的版本
PROJECT_VERSION = "0.0.0.1" # replace the version number with your project version
templates
文件夹(如果没有)
templates
文件夹中创建一个名为templatetags
的文件夹
模板标签
中,添加一个空文件,并将其命名为\uuuu init\uuuuuuuuuuuuuuuupy
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
},
},
},
]
{% load custom_tags %}
?{%cache\u bust%}
。请注意,这不会更改文件的内容,但会强制浏览器重新获取文件。例如:
<link rel="stylesheet" type="text/css" href="{% static 'Style.css' %}?{% cache_bust %}" />
在调试模式下(在开发过程中),'cache_bust'的值每次都会更改,因此缓存不会有任何问题。
在生产模式下,“cache_bust”的值将是您在“settings.py”中设置的项目版本。文件将被缓存,但每当您更改项目的版本时,浏览器将重新获取这些文件。您面临的问题不是Django特有的,但您可以使用Django解决。 浏览器倾向于缓存静态文件,如CSS,以获得更好的性能和更低的数据消耗。
一个快速修复方法是使用浏览器清除缓存。解决方案取决于您的浏览器。然而,这种方法有两个问题
settings.py
中添加一个常量,并将其命名为PROJECT\u VERSION
。PROJECT\u VERSION
的值应为项目的版本
PROJECT_VERSION = "0.0.0.1" # replace the version number with your project version
templates
文件夹(如果没有)
templates
文件夹中创建一个名为templatetags
的文件夹
模板标签
中,添加一个空文件,并将其命名为\uuuu init\uuuuuuuuuuuuuuuupy
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
},
},
},
]
{% load custom_tags %}
?{%cache\u bust%}
。请注意,这不会更改文件的内容,但会强制浏览器重新获取文件。例如:
<link rel="stylesheet" type="text/css" href="{% static 'Style.css' %}?{% cache_bust %}" />
在调试模式下(在开发过程中),'cache_bust'的值每次都会更改,因此缓存不会有任何问题。
在生产模式下,“cache_bust”的值将是您在“settings.py”中设置的项目版本。文件将被缓存,但在您更改项目版本时,浏览器将重新获取这些文件。感谢您的响应…但这对我不起作用..使用此模式时出现许多错误。但正如您提到的“清理浏览器缓存”,这对我帮助很大。Thananks感谢您的回复…但它对我不起作用…在使用此模式时出现许多错误。但正如您提到的“清理浏览器缓存”,它对我帮助很大。蒂纳克斯