最快最稳的离线方案是下载Bootstrap官网“Compiled CSS and JS”压缩包,确保包含dist/css/bootstrap.min.css和dist/js/bootstrap.bundle.min.js,后者内置Popper,避免dropdown等组件失效。

直接去 Bootstrap 官网下载「Compiled CSS and JS」压缩包,别点错成 Source 或 Icons —— 这是最快、最稳的离线方案。
认准官网 Download 页面的 “Compiled CSS and JS” 按钮
Bootstrap 5.x 所有稳定版(如 5.3.3、5.3.8)都在 https://getbootstrap.com/docs/5.3/getting-started/download/ 页面提供离线包。关键不是“Download”大按钮,而是它旁边明确标注的 Compiled CSS and JS 链接。点这个,才能拿到开箱即用的 bootstrap.min.css 和 bootstrap.bundle.min.js。点“Source”会下到 SCSS 源码和构建脚本,没 Node 环境根本跑不起来;点“Bootstrap Icons”只会得到字体文件,没法用组件。
- 国内访问慢?可临时切到镜像站:
https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/目录下右键保存bootstrap.min.css和bootstrap.bundle.min.js - 别用第三方打包站或百度网盘链接——很多混了旧版、删了 Popper、甚至加了广告 JS
- 检查 ZIP 解压后是否含
dist/css/bootstrap.min.css和dist/js/bootstrap.bundle.min.js,缺一不可
为什么必须用 bootstrap.bundle.min.js,而不是 bootstrap.min.js
bootstrap.bundle.min.js 内置了 @popperjs/core,而 bootstrap.min.js 不带。漏掉 Popper,dropdown、tooltip、popover 全部静默失效,控制台还不报错,排查起来极难定位。
- Bootstrap 5 彻底移除了 jQuery 依赖,所以不用再找
jquery.min.js - 如果你手动拆分引入(比如单独配 Popper),得确保 Popper 版本与 Bootstrap 5.x 兼容(通常用
@popperjs/core@2.11.8及以上) - 用
bootstrap.bundle.min.js是最省心的选择,体积只多 ~16KB,换来的是功能完整
下载后文件该放哪、怎么引用才不出错
路径不对,等于白下。Flask、Django、纯静态项目对静态资源路径敏感度不同,但核心原则一致:让 HTML 中的 和 <script></script> 能真实加载到文件。
- 纯 HTML 项目:解压 ZIP,把
dist/css/bootstrap.min.css放进项目css/目录,dist/js/bootstrap.bundle.min.js放进js/目录,然后写:、<script src="js/bootstrap.bundle.min.js"></script>
- Flask 项目:必须放进
static/css/bootstrap.min.css 和static/js/bootstrap.bundle.min.js,否则BOOTSTRAP_SERVE_LOCAL = True会找不到文件 - Django 项目:放进
static/css/和static/js/,模板里用{% static 'css/bootstrap.min.css' %},且确认STATICFILES_DIRS已注册该目录 - 引用顺序不能乱:
必须在,<script></script>必须在前;CSS 在 JS 前
最容易被忽略的一点:下载完别急着改代码,先用浏览器打开 HTML,打开开发者工具 Network 面板,确认 bootstrap.min.css 和 bootstrap.bundle.min.js 的状态码是 200,且响应体里有实际内容——有时候路径写对了,但服务器没配 MIME 类型,返回空响应,页面照样白屏。











