У меня есть сервер разработки, работающий (и обслуживающий контент) с использованием встроенного сервера django. Все мои шаблоны, которые визуализируются из общих представлений, правильно указывают на статические медиафайлы (css/java/imgs), но те, которые отображаются через пользовательские представления, похоже, не добавляют папку/media/к URL-адресам. (По крайней мере, это, кажется, проблема)Сервер разработки Django: шаблоны визуализировать из пользовательских представлений, не получая статические носители
В моих настройках у меня есть:
DJANGO_PATH = os.path.realpath(os.path.dirname(__file__))
DB_PATH = os.path.join((os.path.split(DJANGO_PATH))[0] , 'db/dev.db')
TEMPLATE_PATH = os.path.join(DJANGO_PATH , 'templates')
DEBUG = True
TEMPLATE_DEBUG = DEBUG
MEDIA_PATH = os.path.join((os.path.split(DJANGO_PATH))[0] , 'media')
ADMIN_MEDIA_PREFIX = '/media/admin/'
MEDIA_URL = '/media/'
MEDIA_ROOT = MEDIA_PATH
и В моих URLs У меня есть запись
(r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT, 'show_indexes': True }),
Кто-нибудь получил какие-либо идеи?
EDIT:
Ой, забыл упомянуть. Все мои шаблоны наследуют от базового шаблона, который имеет все медиа-файлы, такие как:
{{ MEDIA_URL }}css/some/file.css
Так что в моей папке шаблонов у меня есть:
/templates/base.html
/templates/someapp/childtemplate.html
со всем CSS/JS в заголовке, как выше. Затем в шаблонах, специфичных для моей applicaiton я просто унаследовав базовый шаблон
Кроме
можно просмотреть СМИ, посетив
localhost:8000/media/
не проблема, поэтому привязок, кажется, делает его работу
Но что вы делаете в своем шаблоне? Как вы выводите путь к медиафайлам? –
Я отредактировал оригинал. У меня есть все мои шаблоны, наследуемые от базового шаблона (который имеет пути в заголовке). Это отлично подходит для общих представлений и шаблонов, но не для пользовательских? –
Исправлено из-за ответов ниже. Для тех, кто читает это в будущем, прочитайте статью, представленную в ответе Омера, так как она представляет собой краткое изложение Контекстных процессоров и почему Generic Views добавляют их по умолчанию, в то время как пользовательские представления должны их вызывать. –