您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何在本地Django环境中提供媒体文件?

如何在本地Django环境中提供媒体文件?

真正的问题是此URLhttp://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 settings
from 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访问这些位置。

Go 2022/1/1 18:51:15 有301人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶