真正的问题是此URL
http://localhost:8000/media/eventbanner/1/banner_image.jpg与磁盘上的此位置之间没有关系
/home/username/xxx/xxx/project_name/media。
在生产应用程序中,您将有一个用于存储
Media内容的Web服务器,服务URL将是
MEDIA_ROOT并且您将附加
ImageField.url到该值以获取有效的图像路径。
这里您需要为媒体图像设置一个Web服务器。乍一看,这需要做很多工作,但是Django提供了一个快捷方式…
在开发中提供文件
您需要做一些工作才能使媒体文件在本地提供。它需要对您的
urls.py…进行一些更改。
from django.conf import settingsfrom django.views.static import serve# ... the rest of your URLconf goes here ...if settings.DEBUG: urlpatterns += [ url(r'^media/(?P<path>.*)$', serve, { 'document_root': settings.MEDIA_ROOT, }), ]这使用该
views.serve位,并且仅应在
DEBUG模式下使用。它会覆盖媒体文件的路径(django是用户上传的内容之类的术语
ImageField)。这将通过
serve视图重定向这些请求。最好的说这是一个微型Web服务器,它将把这些请求路由映射到磁盘上的位置,并允许通过HTTP
url访问这些位置。



