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

Django模板无法识别base.html中BootStrap、jQuery静态文件报错求助

问题原因
  • 你使用相对路径引用静态资源:模板中src="js/jquery.min.js"这类写法会相对当前页面URL/auth/login/拼接路径,最终请求/auth/login/js/jquery.min.js,没有匹配到Django静态资源规则,导致404。
  • 直接使用本地磁盘绝对路径引用资源:C:\Users\marco\...这类路径只有你本地直接打开HTML文件时有效,部署到Django服务后,浏览器无法访问服务端的本地磁盘路径,Django也不会直接读取这类路径返回资源。
  • 重复引入多版本jQuery:头部引入了两次CDN版jQuery,底部又引入了一次本地版jQuery,会产生版本冲突,导致JS功能异常。
解决步骤
  1. 整理静态文件目录
    按照你settings.py中的配置,在项目根目录的templates文件夹下新建static文件夹,再在其中分别新建js、css、img三个子文件夹,把对应的静态资源放到对应目录下:
  • jquery.min.js、bootstrap.bundle.min.js放入js文件夹
  • style.css放入css文件夹
  • logo.png放入img文件夹
  1. 修改模板静态资源引用
    在HTML模板的最开头添加静态资源加载标签:
{% load static %}

所有本地静态资源的引用都替换为Django静态模板语法:

<!-- 引用css -->
<link rel="stylesheet" href="{% static 'css/style.css' %}">
<!-- 引用图片 -->
<img src="{% static 'img/logo.png' %}" alt="">
<!-- 引用js -->
<script src="{% static 'js/jquery.min.js' %}"></script>
<script src="{% static 'js/bootstrap.bundle.min.js' %}"></script>

同时删除头部重复引入的多余jQuery,只保留一个版本即可。

  1. 配置开发环境静态资源路由
    在项目根目录的urls.py中添加如下配置,让Django在开发模式(DEBUG=True)下可以正常提供静态资源服务:
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    # 此处保留你原有所有的URL配置
] + static(settings.STATIC_URL, document_root=settings.STATICFILES_DIRS[0])
补充说明

settings.py中的STATIC_ROOT配置是生产环境执行python manage.py collectstatic命令时,所有静态资源的统一收集目录,生产部署时用Nginx指向该目录即可,开发阶段不需要修改。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 01:45:03