我正在努力让 css 在我的 Django 元素中全局工作。
我有一个名为“project_static”的 STATICFILES_DIRS,其中包含一个 css 文件。 这是我元素的根目录。 在我的 settings.py 中我有:
STATICFILES_DIRS = (
'/Users/gavinhinfey/django_projects/ss_stream/project_static/',
)
在 base.html 中我有:
<link rel="stylesheet" href="{{STATIC_URL}}css/main.css">
{% block content %}
{% endblock content %}
当我在我创建的应用程序“流”中的页面模板中时,css 文件链接正常。但是,当我查看不特定于应用程序的页面模板时,它看不到 css。
知道这是为什么吗?
我已尽力解释这一点,但如果您需要澄清问题,请询问。
谢谢 加文
最佳答案
{{STATIC_URL}}
已被弃用(我认为)所以它可能只呈现 css/main.css
。
我建议你配置如下:
settings.py
import os.path
PWD = os.path.dirname(os.path.realpath(__file__)) # project root path
STATICFILES_DIRS = (
PWD + '/static/', # or project_static, whatever
)
base.html
{% load static %}
<link rel="stylesheet" href="{% static 'css/main.css' %}">
这样您就可以在设置中使用相对路径,并且如果您将整个元素移出您的主目录,则可以避免破坏设置。
您可以将它用于每个路径设置,例如 LOCALE_PATHS
或 TEMPLATE_DIRS
。
如果这还不起作用,请检查您是否有这些设置:
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
# 'django.contrib.staticfiles.finders.DefaultStorageFinder',
)
# optional but if you defined it be sure to have this one:
TEMPLATE_CONTEXT_PROCESSORS = (
# ...
'django.core.context_processors.static',
# ...
)
关于css - Django CSS 全站静态文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18190371/