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

Django视图循环渲染数据库图片时出现404错误求助

Django图片路径显示正确但返回404的解决方法

问题核心

浏览器中显示的图片路径home_page_images/orangeshirt_1ZrO8ay.jpg缺少媒体文件前缀,导致请求指向网站根目录而非Django配置的媒体文件存储路径,因此返回404。

具体解决步骤

1. 修正模板中的图片路径

将模板里的{{d.img}}替换为{{d.img.url}},后者会自动拼接MEDIA_URL前缀,生成完整的可访问路径:

{% for d in data %}
    <img src="{{d.img.url}}" alt="Third slide">
{% endfor %}

2. 确认settings.py的媒体配置正确

确保settings.py中已正确配置媒体文件的存储根目录和访问前缀:

import os
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'

3. 验证DEBUG模式与URL路由

  • 确认settings.DEBUG = True(仅开发环境生效),否则urls.py中添加的媒体文件路由不会启用。
  • 当前urls.py的配置无需修改,保持如下即可:
urlpatterns = [
    path('',views.index,name='index')
]

if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

4. 检查物理文件是否存在

手动确认项目根目录下的media/home_page_images/文件夹中,确实存在orangeshirt_1ZrO8ay.jpg文件,排除上传过程中文件未成功保存的情况。

内容的提问来源于stack exchange,提问作者Benjamin shtainberg

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 15:19:20