You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

配置MEDIA资源服务路由后Django Admin页面返回404问题求助

问题根因

你的settings.py中MEDIA_URL配置错误,大概率设置为了/或空值,导致所有路径的请求都会优先匹配媒体文件静态服务路由,/admin/请求被django.views.static.serve拦截,尝试在MEDIA_ROOT目录下查找admin相关资源,找不到就返回404。

修复步骤
  • 修改settings.py中的MEDIA_URL配置,指定专属的媒体资源访问前缀,示例配置如下:
MEDIA_URL = '/media/'

注意前缀前后的斜杠不可省略,确保只有路径前缀为/media/的请求才会被媒体文件服务处理。

  • 保持urls.py中追加的+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)代码不变,确认路由配置顺序:urlpatterns列表中优先配置admin路由、业务路由,最后再追加媒体静态路由。
  • 重启Django服务即可,修复后admin后台和媒体文件访问可同时正常工作。
注意事项
  • 上述配置仅适用于开发环境,生产环境不要使用Django本身提供的静态文件服务,需用Nginx等反向代理服务处理媒体文件、静态资源的请求。
  • 开发模式下需确保settings.py中DEBUG = True,static()方法添加的路由才会生效。

内容的提问来源于stack exchange,提问作者Maxim Buz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 04:06:03