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
相关产品推荐
相关产品推荐

