Django CSS站点宽静态文件

时间:2013-08-12 15:01:02

标签: css django

我正在努力让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。

知道为什么会这样吗?

我已尽力解释此问题,但如果您需要澄清问题,请询问。

由于 加文

2 个答案:

答案 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_PATHSTEMPLATE_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

之后,您的资源文件才会处于STATIC_ROOT状态