我正在努力让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文件链接正常&#39;我创造了。但是,当我查看不是特定于应用的页面模板时,它看不到css。
知道为什么会这样吗?
我已尽力解释此问题,但如果您需要澄清问题,请询问。
由于 加文
答案 0 :(得分:4)
{{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',
# ...
)
答案 1 :(得分:0)
请注意,STATICFILES_DIRS是一个可与目录一起查找项目的静态文件。
但该应用程序不应该在同一文件夹中查找文件。它应该在STATIC_ROOT(不同的)中查找文件。只有在manage.py collectstatic