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

Django项目无法正常显示上传的图片,如何排查相关配置问题?

Django本地调试无法显示已上传图片的排查方案

1. 检查项目根urls.py的静态媒体路由配置

DEBUG模式开启的情况下,需要手动在根urls.py中添加MEDIA资源的服务规则,代码示例如下:

from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    # 原有项目的路由配置保持不变
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

这是该类问题最常见的诱因,DEBUG模式下Django默认不会处理MEDIA路径下的静态资源,必须添加上述配置才能正常访问。

2. 确认MEDIA_ROOT路径与实际存储路径匹配

你当前配置的MEDIA_ROOT = os.path.join(BASE_DIR, 'media'),需要确认BASE_DIR指向的路径是否是project/core目录:

  • 如果你的settings.py存放在project/core/路径下,默认的BASE_DIR = Path(__file__).resolve().parent.parent会指向project目录而非project/core,导致MEDIA_ROOT实际指向project/media,和你实际存储的project/core/media路径不匹配,自然找不到文件。
  • 修正方案:如果确认图片要存在core目录下,修改MEDIA_ROOT为os.path.join(BASE_DIR, 'core/media')即可,或者直接将media目录移动到BASE_DIR指向的根目录下。

3. 检查模板中图片链接的写法

模板中引用图片要使用对象.字段.url的方式,以你的Bill模型实例为例,正确写法是:

<img src="{{ bill.Bill_picture.url }}" alt="账单图片">

不要手动拼接路径,避免出现前缀错误。

4. 排查文件权限问题

确认运行Django服务的进程对media目录及其下的图片文件有读取权限,Linux/macOS环境下可以执行chmod -R 755 media给目录添加可读权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 20:15:05