为什么django没有提供我的媒体文件?

时间:2013-04-05 10:58:09

标签: django django-templates django-media

在我的settings.py

ROOT_PATH = os.path.dirname(__file__)
#STATICFILES_DIRS =
STATIC_ROOT = os.path.join(ROOT_PATH, 'static')
MEDIA_ROOT = os.path.join(ROOT_PATH, 'media')
STATIC_URL = '/static/'
MEDIA_URL = '/media/

在我的模板中,

     <div class=" event_image">
      <img src="{{ MEDIA_URL }}{{ restaurant.logo }}" /> 
     </div>

这在开发中不起作用,它返回404 "GET /media/restaurant_detail/restaurant_detail/information_about_object.jpg HTTP/1.1" 404 178672

我做错了什么,正确的方法是什么,所以它在dev't和production中都有效。我看了这里(Django 1.4 serving MEDIA_URL and STATIC_URL files on development server),但一切都是徒劳的。

2 个答案:

答案 0 :(得分:4)

原来我必须包括网址,我的网址

urlpatterns += patterns('',
    url(r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_ROOT}),
    url(r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}),

)

以上工作..

my project structure
-myproject
-- media
-- static
-- templates
-- settings.py
-- manage.py
-- app

答案 1 :(得分:0)

Suziemac,它也适合我。以下是原始文档的链接:https://docs.djangoproject.com/en/1.10/ref/views/。 当我开发应用程序时,我使用了+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT),但是当我部署应用程序时,这不起作用。