Django服务器从数据库调取图片赋值给img src报404错误如何解决
问题解决步骤
1. 修正模板中图片路径的写法
你当前模板中直接使用{{ post.image }}调用ImageField字段,无法直接得到可用的访问路径,需要调用字段的url属性,同时修正标签语法错误,修改后的模板代码如下:
{% extends 'blog/base.html' %} {% block content %} {% for post in posts %} <article class="media content-section"> <img src="{{ post.image.url }}" width="200" height="200" alt="{{ post.first_name }}的证件照"> </article> {% endfor %} {% endblock content %}
注意:删除了src属性值里的多余空格,补全了img标签的闭合和alt属性,避免语法错误
2. 检查settings.py的媒体文件配置
确保你的项目配置文件(settings.py)中已经添加了媒体文件的相关配置:
# 媒体文件访问前缀 MEDIA_URL = '/media/' # 媒体文件实际存储的本地路径 MEDIA_ROOT = BASE_DIR / 'media'
配置完成后,你上传的图片会自动存放在项目根目录的media/document_pics路径下。
3. 配置开发环境的媒体文件路由
Django默认在开发环境下不会自动处理媒体文件的访问请求,需要在项目根目录的urls.py中添加路由规则:
from django.conf import settings from django.conf.urls.static import static urlpatterns = [ # 你原来的其他路由配置保持不变 ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
注意:该配置仅在DEBUG=True的开发环境生效,生产环境需要用nginx等服务处理静态/媒体文件请求
额外小问题修正
你的Id模型的__str__方法里属性名写错了,first_nam少了末尾的e,修改为:
def __str__(self): return self.first_name
内容的提问来源于stack exchange,提问作者luka
相关产品推荐
相关产品推荐

