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

Django电商项目产品图片无法在浏览器显示的问题求助

电商产品图片404无法显示解决方案

先检查settings.py的媒体配置

打开项目的settings.py,确保这两项配置正确:

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
  • MEDIA_ROOT是本地存储媒体文件的绝对路径,Django会自动在项目根目录创建media/photos文件夹存放上传的图片
  • MEDIA_URL是浏览器访问媒体文件的前缀,和你终端里的/media/photos/xxx.jpg请求路径完全对应

配置根urls.py的媒体路由

在项目主目录的urls.py里,添加媒体文件的路由映射,让开发服务器能正确找到本地的媒体文件:

from django.conf import settings
from django.conf.urls.static import static
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('base.urls')),  # 保留你已有的应用路由
    # 其他原有路由...
]

# 仅在开发环境生效(DEBUG=True)
if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

⚠️ 注意:这个配置只适合开发阶段,生产环境必须用Nginx或Apache这类服务器处理媒体文件,不能依赖Django自带的这个方法。

验证本地文件是否存在

去项目根目录的media/photos/文件夹确认:

  • 如果buy-1.jpg、buy-2.jpg不存在,回到Admin后台重新上传,检查是否有上传失败的提示
  • 如果文件存在,确保本地用户对该文件夹有读写权限(开发环境一般默认没问题)

额外确认

你的模板和模型代码本身没有问题:

  • 模板中{{ item.photo.url }}的写法正确,和模型的ImageField配置匹配
  • 模型里upload_to='photos'的设置会把图片存在media/photos下,和请求路径完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 15:20:29