首页 > 解决方案 > 如何让Django找到一个静态css文件

问题描述

我对当前的 Django 项目及其静态文件很感兴趣。我在 SO 上尝试了不同的解决方案
(例如Django 找不到我的静态文件Django Static Files CSS),甚至我自己的其他项目中的工作解决方案..

我只想将位于我的项目 /static/ 文件夹中的基本 css 文件链接到我的 base.html 文件,该文件将包含项目中所有站点/应用程序的基本导航栏。这就是为什么我决定将它集中放置在项目目录中。不知何故,它不会找到该文件。

这是我的设置

设置.py:

STATIC_ROOT = ''
STATIC_URL = '/static/'
STATICFILES_DIRS = (os.path.join('static'), )

base.html:

{% load static %}
[...]
            {% block head_css_site %}
              <link href="{% static 'base.css' %}" rel="stylesheet" type="text/css">
            {% endblock head_css_site %}
[...]

项目结构:

在此处输入图像描述

错误:

GET http://127.0.0.1:8000/static/base.css net::ERR_ABORTED 404 (Not Found)

标签: djangostatic

解决方案


问题出在您的模板中。如您所见,正在发出的请求不包含静态前缀,这表明STATIC_URL未定义。而且,实际上,{% load static %}您在模板顶部给出的 没有(也不能)定义该变量。它的作用是让您访问static模板标签,您可以像这样使用它:

<link href="{% static 'base.css' %}"...>

编辑

此外,您的静态文件夹似乎位于您的“dashex”目录中,而不是基本目录。因此,您应该移动它,或更改设置:

STATICFILES_DIRS = (os.path.join('dashex/static'), )

推荐阅读