我在urls.py中设置了以下内容:
(r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT})
我的设置是:
MEDIA_ROOT = 'd:/~Sasha/Portman/media/'
MEDIA_URL = 'http://localhost:8000/media/'
以及以下网址:
http://localhost:8000/media/icons/151.png
返回:
"d:\install\python27\lib\site-packages\django\contrib\admin\media\icons\151.png" does not exist
我还缺少其他东西吗?
答案 0 :(得分:1)
问题是settings.ADMIN_MEDIA_PREFIX和MEDIA_ROOT指向相同/媒体/结尾,因此r'^ media /'正在混合它们。将ADMIN_MEDIA_PREFIX更改为/ admin-media /,现在一切正常。
答案 1 :(得分:0)
您应该在settings.py中设置其他设置使用的项目目录。
我的设置:
BASE_PATH = os.path.dirname(os.path.abspath(__file__))
...
MEDIA_ROOT = os.path.join(BASE_PATH, 'media')
MEDIA_URL = '/media/'
ADMIN_MEDIA_PREFIX = '/static/admin/'
STATIC_URL = '/static/'
# Additional locations of static files
STATICFILES_DIRS = (
os.path.join(os.path.dirname(__file__), 'static').replace('\\', '/'),
os.path.join(BASE_PATH, 'static'),
)
然后在urls.py中,最后
if settings.DEBUG:
urlpatterns += patterns("",
url(r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root':settings.MEDIA_ROOT})
)
urlpatterns += staticfiles_urlpatterns()