JS文件是否加载成功,唯一可信依据是Network面板:查状态码(200/404/403)、核对Request URL真实路径、点开Response确认内容为JS代码,而非HTML或空响应。

怎么看 JS 文件到底有没有加载成功
别猜,直接看 Network 面板——这是唯一可信的依据。打开 DevTools(F12),切到 Network 标签页,刷新页面,筛选 JS 或按 Ctrl/Cmd + F 搜 .js。重点盯三件事:
• 状态码是不是 200,404 说明路径错了,403 可能是服务器拒绝访问目录,200 但响应体是 HTML(比如返回了 404.html)说明路由兜底了;
• Request URL 列显示的完整地址,它就是浏览器“以为”该去哪找文件——比如你写 src="js/app.js",而当前 HTML 在 /blog/post.html,那真实请求的就是 /blog/js/app.js;
• 点开那个 JS 请求,在 Response 标签里确认内容确实是 JS 代码,不是空的、不是重定向、更不是一段错误提示。
为什么本地双击打开 HTML 时路径总出错
file:// 协议下,浏览器不支持以 / 开头的“根路径”。比如你写 src="/js/main.js",双击打开后,浏览器会试图加载 file:///js/main.js,这显然不存在。
这不是你代码写错了,是运行环境不匹配。
必须用本地 Web 服务:
• VS Code 用户装 Live Server 插件,右键选 “Open with Live Server”;
• Python 用户确保项目根目录为工作目录,再运行 python3 -m http.server 8000;
• Node.js 用户可全局安装 http-server,然后在项目根目录执行 http-server;
注意:所有这些方式,都要求你的静态资源(如 js/ 文件夹)就在服务启动的当前目录下,否则照样 404。
构建工具(Vite/Webpack)部署后路径断了怎么办
构建产物里的 index.html 通常还写着 src="assets/app.abc123.js",但实际文件可能被放进 /dist/assets/ 目录——如果没配对,就 404。
关键配置项必须核对:
• Vite:检查 vite.config.js 中的 build.assetsDir(决定产出 JS/CSS 子目录名)和 base(决定所有资源 URL 的前缀);若部署到 GitHub Pages 子路径如 https://me.github.io/my-app/,base 必须设为 "/my-app/";
• Webpack:确认 output.publicPath 是否匹配部署后的 URL 前缀,比如设为 "/my-app/" 或 "https://cdn.example.com/my-app/";
• 构建完先本地起服务打开 dist/index.html,再进 Network 看每个 JS 请求是否真返回了 JS 内容,而不是 404 或 HTML 页面。
阿拉丁·前端工程工坊把「前端只会写页面、规范停在文档里、脚手架手敲、构建靠抄、性能靠猜、可访问性靠忘」从「手动搭项目、抄配置、肉眼查规范」升级成一条本地工具链——多框架脚手架生成(React/Vue3/Svelte + Vite)、可复用组件生成(Props 类型+样式+示例)、规范落地检查(lint-lite:命名/未用变量/console残留/TS any/目录结构)、构建配置生成与产物体积预算、性能审计(依赖体积/重复/懒加载/Lighthouse 清单)、可访问性(a11y)校验(alt/aria
script 标签加了 type="module" 却报 "Failed to resolve module specifier"
ES 模块(type="module")的 import 语句不支持裸模块名,比如 import * as THREE from 'three' 是非法的——浏览器不知道 three 对应哪个文件。
解决办法只有两个:
• 改用相对或绝对路径:import * as THREE from './node_modules/three/build/three.module.js'(路径要真实存在且可访问);
• 或者用 <script type="importmap"></script> 映射裸名:
<script type="importmap">
{
"imports": {
"three": "./node_modules/three/build/three.module.js",
"three/addons/": "./node_modules/three/examples/jsm/"
}
}</script>注意:importmap 必须在第一个 <script type="module"></script> 之前,且只在现代浏览器中支持。
路径问题本质不是“怎么写好看”,而是“浏览器最终请求的 URL 是什么”——所有调试动作都要围绕这个事实展开。最容易被忽略的是:构建配置、部署路径、本地开发协议三者之间是否真正对齐,缺一不可。
立即学习“前端免费学习笔记(深入)”;


















