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

Django项目模板无法显示图片问题求助(已尝试多种方案)

Django模板静态图片无法显示的排查与解决

针对你遇到的问题,结合现有配置,给出以下关键排查和修复步骤:

1. 开发环境补充静态文件路由

你的URL配置仅处理了MEDIA文件请求,未配置STATIC文件的路由规则。在开发模式(DEBUG=True)下,需要在urls.py中添加STATIC文件的路由:

from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [   
    path('admin/', admin.site.urls),
    path('',include('erp.urls')),  
]

urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
# 新增STATIC文件路由
if settings.DEBUG:
    urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

2. 配置静态文件查找目录

若你的图片放在项目根目录的static文件夹下,当前settings.py未指定该目录为静态资源查找路径,需添加STATICFILES_DIRS配置:

STATIC_URL = 'static/'
MEDIA_URL  = 'media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
PROJECT_ROOT = os.path.normpath(os.path.dirname(__file__))
STATIC_ROOT = os.path.join(PROJECT_ROOT, 'static')

# 添加静态文件查找目录
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]

3. 用模板static标签替代硬编码路径

避免直接在模板中硬编码静态路径,改用Django官方推荐的static模板标签,确保路径与配置一致:

  1. 在模板顶部加载static标签:
{% load static %}
  1. 修改图片标签:
<img src="{% static 'logo_coorg.png' %}" width="60" height="40">

4. 检查DEBUG状态与静态文件收集

  • 开发环境:确保settings.py中DEBUG=True,此时Django会自动处理静态文件请求,无需执行收集命令。
  • 生产环境:若DEBUG=False,先执行静态文件收集命令,将所有静态资源统一归集到STATIC_ROOT目录:
python manage.py collectstatic

生产环境需依赖外部服务器(如Nginx)或中间件(如Whitenoise)托管静态文件,Django本身不会处理静态请求。

5. 验证文件存在性与权限

确认logo_coorg.png确实存在于STATIC_ROOT或STATICFILES_DIRS指定的目录中,且文件具备可读权限,保证Django进程能正常读取该文件。

内容的提问来源于stack exchange,提问作者Bineesh Kumar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 17:52:34