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

Django管理后台添加文章时上传的JPG格式图片无法正常显示

Django管理后台上传JPG图片无法显示排查方案

1. 检查基础配置是否正确

首先确认settings.py中是否正确配置媒体资源相关参数:

# settings.py
import os
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

其次确认根路由urls.py中配置了媒体资源的访问路由,开发环境下需要额外添加:

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

urlpatterns = [
    # 原有路由配置
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

注意:生产环境不要用上述配置,需要通过Nginx/Apache等服务代理/media/路径的资源

2. 检查Pillow库的JPG格式支持

Django的ImageField依赖Pillow库处理图片,若编译Pillow时缺少系统JPG依赖会导致无法识别JPG格式:

  • Debian/Ubuntu系统先安装系统依赖:sudo apt install libjpeg-dev zlib1g-dev
  • CentOS/RHEL系统先安装系统依赖:sudo yum install libjpeg-turbo-devel zlib-devel
  • 重新编译安装Pillow:pip install --upgrade --force-reinstall pillow

3. 检查文件权限

确认上传的JPG文件以及上级media目录的读权限是否对Django运行进程开放,Linux环境下可执行以下命令修正:

# 替换为实际的media目录路径,替换为Django运行的用户/用户组
sudo chown -R django-user:django-group /path/to/your/media
sudo chmod -R 755 /path/to/your/media

4. 检查模型字段与admin配置

确认模型中图片字段使用ImageField且配置正确,admin中是否正确注册了该字段的显示:

# models.py示例
from django.db import models

class Article(models.Model):
    title = models.CharField(max_length=200)
    cover = models.ImageField(upload_to='article_covers/') # upload_to参数配置的子目录要存在且有权限

相关问题截图:
管理后台上传界面截图
图片访问报错截图
文件存储路径截图
配置代码截图

内容的提问来源于stack exchange,提问作者Jestin M Wilson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 12:45:06