Django 开发服务器:从自定义视图渲染的模板未获取静态媒体
我有一个使用内置 django 服务器运行(并提供内容)的开发服务器。我从通用视图渲染的所有模板都正确指向静态媒体文件(css/java/imgs),但通过自定义视图渲染的模板似乎没有将 /media/ 文件夹添加到 url 中。 (至少这似乎是问题)
在我的设置中我有:
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
并且在我的网址中我有一个条目
(r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT, 'show_indexes': True }),
有人有任何想法吗?
编辑:
哎呀,忘记说了。我的所有模板都继承自一个基本模板,该模板包含所有媒体文件,例如:
{{ MEDIA_URL }}css/some/file.css
因此,在我的模板文件夹中,我有:
/templates/base.html
/templates/someapp/childtemplate.html
标头中的所有 css/js 都如上面所示。然后,在特定于我的应用程序的模板中,我只需继承基本模板
此外
我可以通过访问来查看媒体
localhost:8000/media/
,没有问题,所以 urlCONF 似乎正在完成它的工作
I have a development server running (and serving content) using the built in django server. All my templates that are rendered from generic views point correctly to the static media files (css/java/imgs) but ones that are rendered via custom views don't seem to prepend the /media/ folder to the urls. (At least this seems to be the problem)
In my settings I have:
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
and In my urls I have an entry
(r'^media/(?P<path>.*)
Anyone got any ideas?
EDIT:
Ooops, forgot to mention. All my templates inherit from a base template which has all the media files like:
{{ MEDIA_URL }}css/some/file.css
So in my templates folder I have:
/templates/base.html
/templates/someapp/childtemplate.html
with all the css/js in the header like above. Then in the templates specific to my applicaiton I am simply inheriting the base template
Furthermore
I can view the media by visiting
localhost:8000/media/
no problem, so the urlCONF seems to be doing it's job
, 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT, 'show_indexes': True }),
Anyone got any ideas?
EDIT:
Ooops, forgot to mention. All my templates inherit from a base template which has all the media files like:
So in my templates folder I have:
with all the css/js in the header like above. Then in the templates specific to my applicaiton I am simply inheriting the base template
Furthermore
I can view the media by visiting
no problem, so the urlCONF seems to be doing it's job