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

Django配置后通过URL访问静态图片提示不存在该如何解决

问题原因
  • MEDIA_ROOT路径配置错误:你写的MEDIA_ROOT = os.path.join(BASE_DIR, '/static/images')中,第二个路径参数开头带斜杠,os.path.join拼接时会直接丢弃前面的BASE_DIR,最终MEDIA_ROOT指向系统根目录下的/static/images,而非项目根目录下的对应文件夹,Django无法定位到你存放的图片。
  • 静态路由配置错误:你在路由中配置STATIC资源时使用了STATIC_ROOT作为路径根目录,但你的配置文件仅定义了开发环境用的STATICFILES_DIRS,未配置STATIC_ROOT(生产环境静态文件导出目录),导致/static/前缀的资源匹配异常。
  • 访问路径不匹配:从报错信息可见你实际请求的是/static/前缀的图片,但你把图片存放在了static/images子目录下,直接请求/static/[图片名]自然无法找到资源。
解决方法
  1. 修正MEDIA_ROOT配置,去掉路径开头的斜杠:
MEDIA_ROOT = os.path.join(BASE_DIR, 'static/images')
  1. 调整路由配置,DEBUG=True的开发环境下Django会自动处理STATIC_URL的请求,仅保留MEDIA路由即可:
urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/', include('api.urls'))
]

urlpatterns += static(settings.MEDIA_URL, document_root = settings.MEDIA_ROOT)
  1. 按规则使用对应访问路径:
  • 走STATIC静态文件规则访问:路径为 http://127.0.0.1:8000/static/images/[图片名]
  • 走MEDIA资源规则访问:路径为 http://127.0.0.1:8000/images/[图片名]

内容的提问来源于stack exchange,提问作者Been-H

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 17:36:09