Вопрос по css, python – Шаблон Django не может видеть файлы CSS

20

Я создаю приложение 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}),
    )

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

Хорошо ... upvote за то, что помог мне разобраться, но ... тамis no /mymedia/ каталог внутри/media/... так, как это требуется вhref? Куда это смотрит? Droogans

Ваш Ответ

5   ответов
0

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

2

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

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

5

ADMIN_MEDIA_PREFIX установлен в\media\ по умолчанию и, вероятно, является «воровством»; путь. Измените этот параметр или используйте другой для мультимедийных файлов, напримерsite_media или жеassets.

Спасибо, Даниэль! Я уже вырывал свои волосы! Это не первый раз, когда я нахожу ваши ответы на вопросы о django очень полезными, поэтому я думаю, это просто большое спасибо.
13

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

чтобы ...

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

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" />
это также сработало для меня, но мне интересно, что мне нужно изменить, когда я разверну проект в сети.

Похожие вопросы