Django模板及后台管理页面图片无法显示问题求助
Django模板及Admin后台无法显示Media图片的解决方案
问题分析
从你提供的配置和现象来看,核心问题是开发环境下未为Media文件配置访问路由,导致/media/路径的请求无法被Django处理,返回404。此外还需验证文件实际存储路径是否正确。
解决步骤
1. 在项目根URL配置中添加Media路由
打开项目根目录下的urls.py,补充以下代码:
from django.conf import settings from django.conf.urls.static import static urlpatterns = [ # 保留已有的其他路由(比如admin、业务路由) path('admin/', admin.site.urls), # ... 其他路由配置 ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
注意:该配置仅适用于开发环境(
DEBUG=True时),生产环境需通过Nginx/Apache等服务器处理Media静态资源请求。
2. 验证MEDIA_ROOT路径正确性
在Django Shell中执行命令确认实际路径:
python manage.py shell >>> from django.conf import settings >>> print(settings.MEDIA_ROOT)
检查输出路径是否与本地media目录完全匹配,同时确认图片已上传至该路径下的images/子目录。
3. 确认图片文件实际存在
手动查看MEDIA_ROOT/images/目录,确认IMG-20220901-WA0009.jpg是否存在。若文件缺失,排查以下问题:
- 是否安装
Pillow依赖库:执行pip install pillow(Django处理图片需依赖该库) - 检查Admin后台上传图片时是否有报错提示
4. 模板中增加空值判断
避免data.image1为空时模板报错,修改模板代码:
{% if data.image1 %} <img src="{{ data.image1.url }}"> {% endif %}
验证修改
完成配置后重启Django开发服务器,再次访问模板页面和Admin后台的图片链接,即可正常显示图片。
内容的提问来源于stack exchange,提问作者Islam Fahmy
相关产品推荐
相关产品推荐

