问题描述
|
我正在尝试在我的开发环境中提供用户上传的媒体文件。
#settings.py
#[...]
import os
SITE_ROOT = os.path.dirname(os.path.realpath(__file__))
MEDIA_ROOT = (os.path.join(SITE_ROOT,\'media/\'))
MEDIA_URL = \'/media/\'
STATIC_URL = \'/static/\'
STATICFILES_Dirs = (
os.path.join(SITE_ROOT,\'static/\'),)
#[...]
#url.py
urlpatterns = patterns(\'\',#[...]
url(r\'^%s(?P<path>.*)$\' % settings.MEDIA_URL[1:],\'django.views.static.serve\',{\'document_root\',settings.MEDIA_ROOT}
),url(r\'^%s(?P<path>.*)$\' % settings.STATIC_URL[1:],settings.STATIC_ROOT}
),)
尝试访问上层文件,例如http://127.0.0.1:8000/media/videos/julian_06.flv,我得到了
/media/videos/julian_06.flv的ValueError
字典更新序列元素#0的长度为40; 2个为必填项
解决方法
我建议尝试按照文档进行开发中的静态托管
if settings.DEBUG:
urlpatterns += patterns(\'django.contrib.staticfiles.views\',url(r\'^media/(?P<path>.*)$\',\'serve\'),)
编辑:
您的字典在\'document_root\'
和settings.MEDIA_ROOT
之间应有:
而不是,
urlpatterns = patterns(\'\',url(r\'^%s(?P<path>.*)$\' % settings.MEDIA_URL[1:],\'django.views.static.serve\',{\'document_root\': settings.MEDIA_ROOT}),)