Подтвердить что ты не робот

Шаблон Django не может видеть файлы CSS

Я создаю приложение django, и я не могу заставить шаблоны видеть файлы CSS... Мой файл settings.py выглядит так:

MEDIA_ROOT = os.path.join(os.path.abspath(os.path.dirname(__file__)), 'media')
MEDIA_URL = '/media/'

У меня есть файлы CSS в/mysite/media/css/и код шаблона содержит:

<link rel="stylesheet" type="text/css" href="/media/css/site_base.css" />`

то в файле url.py у меня есть:

# DEVELOPMENT ONLY
(r'^media/(?P<path>.*)$', 'django.views.static.serve',
    {'document_root': '/media'}),

но сервер разработки служит для простого html (без стилей). Что я делаю не так?

-

ОК - я работал, основываясь на том, что вы сказали. Ответ:

settings.py:

MEDIA_ROOT = 'd://web//mysite//media//'  #absolute path to media
MEDIA_URL = '/mymedia/' #because admin already using /media

site_base.html:

<link rel="stylesheet" type="text/css" href="/mymedia/css/site_base.css" />

urls.py

from mysite import settings
if settings.DEBUG:
    urlpatterns += patterns('',
        (r'^mymedia/(?P<path>.*)$', 'django.views.static.serve',  
         {'document_root':     settings.MEDIA_ROOT}),
    )

И вуаля! Он работает.

4b9b3361

Ответ 1

в блоке "только для разработки" в urls.py вам нужно изменить

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

чтобы...

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

Ответ 2

ADMIN_MEDIA_PREFIX по умолчанию установлен на \media\ и, вероятно, "крадет" путь. Измените эту настройку или используйте другую для не-админ-медиа - например, site_media или assets.

Ответ 3

На dev-сервере мне нравится обманывать и помещать следующее в мой urls.py

if settings.DEBUG:
    urlpatterns += patterns('',
        (r'^includes/(?P<path>.*)$', 'django.views.static.serve', {'document_root': '/path/to/static/files'}),
    )

Таким образом, все, что находится в проекте под папкой "/includes", является сервером dev-сервера. Вы можете просто изменить это на "/media".

Ответ 4

Он также работал у меня, спасибо, ребята!

settings.py

MEDIA_ROOT = '/home/pi/ewspaces/ws-classic/xima/media'

MEDIA_URL = '/statics/'

urls.py

if settings.DEBUG:
urlpatterns += patterns('',
    (r'^statics/(?P<path>.*)$', 'django.views.static.serve',  
     {'document_root':     settings.MEDIA_ROOT}),
)

внутри шаблонов:

<link type="text/css" href="/statics/css/base/jquery.ui.all.css" rel="stylesheet" />

Ответ 5

У меня была аналогичная проблема, когда я пытался заставить jQuery работать. Мое исправление заключалось в добавлении псевдонима в файл Apache httpd.conf, указывающий на папку, содержащую .js. Вы можете сделать то же самое с вашей папкой CSS.