Django项目访问用户头像触发404 Page Not Found错误咨询
报错核心原因
你在项目根路由的末尾,仅通过static()方法绑定了静态资源(static)的本地服务规则,没有配置media目录对应的访问路由,所有携带/media/前缀的请求都无法匹配现有路由规则,最终触发404报错。
具体修改方法
- 打开项目根目录下的
urls.py文件 - 定位到文件末尾的路由拼接逻辑,你当前的实现为:
urlpatterns = [ # 原有路由条目保持不变 ] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) - 在现有拼接逻辑上,补充media目录对应的服务映射,最终修改为:
urlpatterns = [ # 原有路由条目完全保留 ] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) \ + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
相关注意事项
- 上述media路由配置仅适配本地开发调试场景(要求
settings.py中DEBUG = True);生产环境不要依赖Django本身处理media资源请求,需交由Web服务器、对象存储或CDN完成资源分发。 - 配置修改完成后,重启Django开发服务,再访问
/media/前缀的资源路径即可正常匹配加载。 - 请核对本地文件存放路径是否和配置匹配:按照当前settings规则,默认头像
default.jpg需直接放置在项目根下的media/目录中,用户上传的头像文件存储在media/Profile_pics/路径下,与模型字段定义的default='default.jpg'、upload_to='Profile_pics'要求完全一致,路径正确且路由配对后即可正常加载。
内容的提问来源于stack exchange,提问作者Vishal Patil
相关产品推荐
相关产品推荐

