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

Django生产环境Admin静态文件从/media加载致404错误

Django生产模式下Admin静态文件错误从/media路径加载的排查方案

针对你遇到的生产模式(DEBUG=False)下Admin站点从/media加载静态文件导致404的问题,结合你的配置和使用场景,可按以下步骤排查:

1. 排查自定义Admin模板的覆盖问题

  • 检查项目templates/admin目录下是否存在自定义模板文件(如base.html、base_site.html等)
  • 查看这些模板中加载Admin静态资源的代码,确认是否错误使用了{{ MEDIA_URL }}替代{{ STATIC_URL }},或是未正确使用static模板标签

示例错误代码:

<link rel="stylesheet" href="{{ MEDIA_URL }}admin/css/base.css">

修正为:

{% load static %}
<link rel="stylesheet" href="{% static 'admin/css/base.css' %}">

2. 检查是否意外设置废弃的ADMIN_MEDIA_PREFIX

  • 排查生产配置文件(production.py)或环境变量中,是否存在ADMIN_MEDIA_PREFIX = "/media/admin/"这类配置
  • 该变量在Django 1.4+已废弃,但如果被错误设置,会强制Admin站点使用指定路径加载静态资源

3. 验证模板上下文处理器的完整性

  • 确认production.py未修改TEMPLATES中的context_processors配置,确保django.template.context_processors.static和django.template.context_processors.media均被正确包含
  • 可临时添加测试视图,输出{{ STATIC_URL }}和{{ MEDIA_URL }}的值,验证二者分别为/static/和/media/

4. 排查第三方依赖的干扰

  • 临时将collectfast从INSTALLED_APPS中注释,重新部署后测试Admin静态资源路径是否恢复正常
  • 检查是否有自定义中间件或其他App修改了静态文件URL的生成逻辑

5. 清理缓存并重新收集静态文件

  • 执行命令强制清理并重新收集静态文件:
    python manage.py collectstatic --clear
    
  • 清理生产环境的模板缓存(若使用了模板缓存中间件或服务器缓存)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 02:30:43