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

Django模板静态图片不显示,已排除URL配置问题求助

1. 修正settings.py配置

你原有配置存在路径规则错误,按以下内容调整:

  • 原STATIC_URL配置不符合Django规范,统一改为标准/static/即可
  • STATIC_ROOT路径不能带前导斜杠,带前导斜杠会被识别为系统根目录的绝对路径,无法对应项目目录
  • STATICFILES_DIRS不需要重复配置多条绝对路径,Django默认会自动查找每个已注册APP下的static目录,只需保留基础配置即可
STATIC_URL = '/static/'
# 生产环境执行collectstatic命令后,静态资源会自动归集到该目录
STATIC_ROOT = os.path.join(BASE_DIR, "static/")

# 额外静态文件查找路径,可直接省略不写
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "storiesapp/static/"),
]

STATICFILES_FINDERS =[
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
]

# MEDIA相关配置用于存储用户上传的动态资源,你的静态背景图不需要用到,原有配置可直接保留
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'

2. 修正urls.py配置

你目前仅配置了MEDIA资源的访问路由,开发环境下还需要补充静态资源的路由规则:

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

...
# 该配置仅开发环境生效,生产环境请用Nginx等服务代理静态资源
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

3. 修正模板中的图片引用方式

首先在模板文件的最顶部加载static模板标签:

{% load static %}

再替换为正确的静态资源引用写法:

<link rel="apple-touch-icon" sizes="76x76" href="{% static 'storiesapp/img/image.png' %}">
<img src="{% static 'storiesapp/img/image.png' %}">

你之前引用写法的错误点:

  • 第一种写法的./assets/路径不存在,自然找不到资源
  • 第二种写法直接写相对路径static/storiesapp/img/,如果当前页面不在站点根路径下,相对路径会自动拼接当前页面的URL前缀,导致路径错误
  • 第三种写法误用了MEDIA配置,MEDIA仅用于存储用户上传的动态文件,你的静态背景图不属于MEDIA范畴,且语法也存在错误,正确写法是{{ MEDIA_URL }}而非{{ MEDIA.URL }}

内容的提问来源于stack exchange,提问作者Game Analysis

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 07:15:04