Django site_media относительная проблема URL - PullRequest
1 голос
/ 27 мая 2010

в моем settings.py У меня есть следующее:

PROJECT_DIR = os.path.dirname(os.path.realpath(__file__))
MEDIA_ROOT = os.path.join(PROJECT_DIR,'templates')
MEDIA_URL = '/templates/'

В urls.py у меня есть (r'^site_media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}),

И мой base.html имеет следующую директиву:

<link media="screen" href="site_media/bat/design/css/bat.css" type="text/css" rel="stylesheet" />

При первом входе в приложение (т.е. http://localhost) эта таблица стилей загружается очень хорошо. Однако при последующем запросе http (в urls.py это (r'^assist/bat/', include('assist.bat.urls')), для другого шаблона эта директива приводит к следующая ошибка:

Таблица стилей http://localhost/assist/bat/site_media/bat/design/css/bat.css не была загружена, поскольку ее тип MIME "text / html" не является "text / css."

Как вы можете видеть, эта директива css трансформируется в относительный URL, который совершенно неверен. Если я удаляю / assist / bat из этого URL-адреса, он работает просто отлично. Так, как я могу настроить свое приложение, чтобы оно не изменялось таким образом?

Спасибо, Игорь

1 Ответ

3 голосов
/ 27 мая 2010

Дикая догадка: href="site_media/bat/design/css/bat.css" должно быть href="/site_media/bat/design/css/bat.css", URL, начинающиеся без косой черты перед ними, разрешаются относительно текущего URL.

...