【发布时间】:2016-11-19 21:38:36
【问题描述】:
当我加载本地站点时,我无法加载 CSS 文件。我正在运行 Django 1.9 和 python 3.4.2。
这是我的结构:
apps/
app1/
app2/
etc.
clients/
media/ #css, js, images, etc.
static/ #static files
templates/ #html templates
__init__.py
manage.py
settings.py
etc.
在我的 settings.py 文件中,我有:
STATIC_ROOT = os.path.join(BASE_DIR, 'clients', 'static')
STATIC_URL = 'clients/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'clients', 'media'),
]
MEDIA_ROOT = os.path.join(PROJECT_PATH, 'clients', 'media')
我调用 css 文件的 html 模板是这样的:
{% load staticfiles %}
<link rel="stylesheet" href="{% static 'css/primary_stylesheet.css' %}" />
我继续收到 404 错误,说它在以下位置找不到 css 文件:/clients/static/css/primary_stylesheet.css
在我的 settings.py 文件中,我打印了我的 STATICFILES_DIRS 和 STATIC_ROOT,它们都直接指向了它们应该指向的位置。我已经阅读了文档并尝试了 DIRS 和 ROOT 的多种变体,但不明白为什么 css 文件没有正确提取 - 甚至“collectstatic”也正确收集。
我非常感谢其他人必须给予的任何帮助和智慧。
谢谢!
【问题讨论】:
-
您确定文件
/clients/media/css/primary_stylesheet.css存在吗?当您运行collectstatic时,您是否验证了/clients/static/css/primary_stylesheet.css存在? -
请同时添加您的
STATICFILES_FINDERS设置。 -
@YPCrumble 是的,我确信 /clients/media/css/primary_stylehseets.css 存在。如果我从 /static/ 文件中删除 CSS 文件,然后再次收集静态文件,则该文件会在 /static/css/ 中正确更新
-
@YPCrumble 目前我没有列出任何 STATICFILES_FINDERS 设置...这是要求吗?
-
你用什么服务器来服务这个 django 应用程序?
标签: django