Django 的 MEDIA_URL 和 MEDIA_ROOT:解决图像访问问题
在 Django 中,MEDIA_URL 和 MEDIA_ROOT 设置在管理上传的文件和将它们提供给前端。常见的场景是使用 Django 管理员上传图像,然后通过 URL 或前端页面访问它。
按照所提出的问题,上传已正确保存,但 URL 访问会导致 404 错误,我们可以利用 URLconf 模式来解决这个问题。
Django 1.7 及以上版本的解决方案
根据 Django 2.1 文档,将以下代码片段添加到您的 URL 配置中将在开发过程中处理静态文件的服务,包括上传的媒体:
from django.conf.urls.static import static urlpatterns = patterns(...) + static(MEDIA_URL, document_root=MEDIA_ROOT)
Django 1.6 及以下版本的解决方案
对于旧版本的 Django,以下 URLconf可以配置为提供静态媒体:
from django.conf.urls.patterns import patterns, url from django.views.static import serve if settings.DEBUG: urlpatterns += patterns('', url(r'^media/(?P<path>.*)$', serve, {'document_root': MEDIA_ROOT}))
通过添加此配置,Django 将在开发过程中当 DEBUG = True(在本地计算机上)时提供静态文件。但是,对于生产,可以将 Web 服务器配置为在 DEBUG = False 时处理静态媒体服务。
此解决方案允许您使用 Django 的 MEDIA_URL 和 MEDIA_ROOT 设置成功上传和访问本地计算机上的图像。
以上是如何使用 Django 的 MEDIA_URL 和 MEDIA_ROOT 提供上传的图像?的详细内容。更多信息请关注PHP中文网其他相关文章!