2012-01-02 25 views
1

我已经安装在我的urls.py如下:Django的媒体钩不拿起正确的目录

(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 

还有什么我失踪?

回答

1

问题是settings.ADMIN_MEDIA_PREFIX和MEDIA_ROOT都指向同一/媒体月底/结束等等r'^ media /'正在混合它们。将ADMIN_MEDIA_PREFIX更改为/ admin-media /,现在全部运行。

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() 
+0

恐怕我不明白。这些设置肯定是由应用程序找到的 - 比如愉快地检索数据库设置。你说我错过了BASE_PATH吗?有趣的是,使用相同的/媒体/设置的其他应用程序是愉快地工作没有BASE_PATH :) – abolotnov 2012-01-02 19:37:27

+0

你有urls.py这些行吗?你是用DEBUG True还是False运行? – dustinmm80 2012-01-02 22:07:06