Файл django css не распознан - неправильная конфигурация? - PullRequest
0 голосов
/ 06 июля 2010

в моем приложении я хочу использовать файл css, но tempalte не «знает», где находится файл, хотя я настроил его, как в учебниках:

в urls.py (файл urls в корне сайта, не принадлежащий приложению)

(r'^site_media/(?P<path>.*)$', 'django.views.static.serve',
        {'document_root': settings.STATIC_DOC_ROOT}),

в шаблоне

<link href="/site_media/default.css" rel="stylesheet" type="text/css" />

в настройках:

STATIC_DOC_ROOT = '/site_media'

где я могу ошибаться? Спасибо

Ответы [ 2 ]

3 голосов
/ 06 июля 2010

Проверьте django-раздражает , это очень полезное приложение с множеством удобных декораторов, промежуточного программного обеспечения и функций.Если вы добавите StaticServe промежуточное ПО таким образом, Django будет работать статически, если DEBUG = True без явной настройки в urls.py.

MIDDLEWARE_CLASSES = (
    'annoying.middlewares.StaticServe',
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',              
    'django.middleware.doc.XViewMiddleware',               
    'django.contrib.auth.middleware.AuthenticationMiddleware',                    
)

Во-вторых, проверьте MEDIA_URL (в вашем случае это STATIC_DOC_ROOT, но вы должны использовать MEDIA_URL) и MEDIA_ROOT path.MEDIA_ROOT должен указывать на абсолютный путь к вашему статическому каталогу.Вот как я это делаю в урегулировании .py:

import os


def rel(*x):
    return os.path.join(os.path.abspath(os.path.dirname(__file__)), *x)

# MEDIA_ROOT will point to media directory where settings.py is located
MEDIA_ROOT = rel('media')
MEDIA_URL = '/media/'

Вы можете использовать ту же функцию, чтобы установить путь к вашему templates dir.

2 голосов
/ 06 июля 2010

Аргумент document_root для static.serve должен быть местоположением файла в файловой системе сервера , а не URL-адресом. Поэтому, если ваш файл css действительно не находится в каталоге /site_media на вашем диске, что маловероятно, вам нужно что-то еще как STATIC_DOC_ROOT.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...