无法在Django 2.2中呈现静态文件
我刚开始做一个项目,之前的开发人员使用的是django 2.2 理想情况下,抛开复杂性不谈,需要在settings.py文件中定义无法在Django 2.2中呈现静态文件,django,django-2.2,Django,Django 2.2,我刚开始做一个项目,之前的开发人员使用的是django 2.2 理想情况下,抛开复杂性不谈,需要在settings.py文件中定义STATIC\u URL='/STATIC/',并在基本html文件中使用{%load'STATIC%},同时在URL.py文件中添加所需的详细信息 但是,在当前项目中,所有静态内容(css、js)都存储在单个媒体文件夹中 在settings.py文件中,我有 STATIC_ROOT = '/usr/local/my34project/lib/python3.4/si
STATIC\u URL='/STATIC/'
,并在基本html文件中使用{%load'STATIC%}
,同时在URL.py文件中添加所需的详细信息
但是,在当前项目中,所有静态内容(css、js)都存储在单个媒体文件夹中
在settings.py文件中,我有
STATIC_ROOT = '/usr/local/my34project/lib/python3.4/site-packages/django/contrib/admin/static'
STATIC_URL = '/static/'
在基本html文件中,它们也有
<link href="/media/css/backoffice/fonts.css" rel="stylesheet" type="text/css">
而不是
<link href="{% static 'css/backoffice/fonts.css' %}" rel="stylesheet" type="text/css">
前一个人的项目如何在url链接中没有加载或使用静态文件的情况下工作?如果设置
DEBUG=False
,静态文件将不再提供服务。请注意,如果使用{%extend…%}
并且父模板具有{%load static%}
,则无需再次加载它。URL.py文件是否具有static()
条目?当DEBUG=True时,/media/
中的文件可能就是这样得到服务的。但这确实是一种非常糟糕的做法。您的STATIC\u ROOT
设置确实错误。首先,它在开发模式中不是必需的,但更重要的是,它不应该指向包的现有目录!Django在运行collectstatic
时会在这里复制所有静态文件,因此它应该是一个特殊的目录。@WillemVanOnsem:其他html模板正在使用extends
,但是父模板(在我的例子中是base.html文件)没有{%load static%}
。base.html和扩展base的其他html文件中都列出了css和js文件,所有这些文件都有css和js文件的硬编码URL,它们似乎都可以正常工作。@dirkgroten,项目级URL.py已从django.conf.urls.static import static导入了,但它未被引用或与URLSpattern一起使用。此外,在应用程序级URL.py文件中也没有提及静态。您确定没有类似于urlpatterns+=static(settings.MEDIA\u URL,document\u root=settings.MEDIA\u root)
?