最高效排查路径是打开开发者工具(F12)→ Network标签页→刷新页面→定位标红的JS请求:若状态码404,说明路径错误或文件未部署;若200但Content-Type非application/javascript或响应体为HTML,则是路径错导致返回了fallback页;若内容为JS但含BOM、语法错误等,浏览器解析失败也会拒识为模块。

直接打开浏览器开发者工具(F12),切到「网络」(Network)标签页,刷新页面,重点看报错的 JS 文件请求——这是最高效、最落地的排查路径。
看状态码和响应内容
找到那个标红或显示失败的模块文件请求,先确认状态码:
- 如果是 404:说明路径写错了,或者服务器根本没部署这个文件。检查 HTML 中
<script type="module" src="xxx"></script>的路径是否带./或../,ESM 不接受无前缀的裸路径(比如import 'utils'❌,必须写成import './utils.js'✅) - 如果是 403 / 500 / 0:可能是服务器权限、后端错误,或跨域/协议问题(比如 HTTP 页面加载 HTTPS 资源)
- 如果是 200:文件确实返回了,但浏览器不认它是模块——这时要继续看响应头和响应体
查 Content-Type 响应头
点击该请求,切换到「标头」(Headers)→「响应标头」(Response Headers),找 Content-Type 字段:
分析 Java Spring Boot 后端 Controller 代码,自动生成 Markdown 格式的接口文档。当用户说“生成 Java 接口文档”、“生成 API 文档”、“从 Spring 代码生成文档”时触发。
- 正确值应为
application/javascript(推荐)或text/javascript - 如果看到
text/html:说明服务器返回的是一个 HTML 页面(比如 404 页面、Vue Router 的 fallback 页面、或 Nginx 默认首页),不是 JS 文件——本质是路径错导致“找错人”了 - 如果看到
application/octet-stream或空值:静态服务器未配置 .js 文件的 MIME 类型,需在 Nginx/Apache 或托管平台(如 GitHub Pages、Vercel)中补上
验文件内容是否合法
在同一个请求详情页,切到「预览」(Preview)或「响应」(Response)标签:
- 如果显示的是 HTML 内容(比如
开头):再次印证是路径错误或路由 fallback 导致返回了 index.html - 如果显示乱码、空白或明显不是 JS 代码(比如 JSON、CSS、纯文本):说明构建产物没生成对,或 CDN 缓存了旧资源,可尝试硬性刷新(Ctrl+Shift+R)或清缓存
- 如果内容是 JS,但开头有语法错误(比如 BOM 字符、注释格式异常、export 语句写错):浏览器解析失败也会拒识为模块,此时控制台通常伴随
SyntaxError: Unexpected token
确认 script 标签是否启用模块模式
回到 HTML 源码,检查加载该 JS 的 <script></script> 标签:
- 必须包含
type="module",否则浏览器按传统脚本执行,遇到import就直接报Cannot use import statement outside a module - 不能同时存在
defer或async的干扰写法(虽然它默认 defer,但显式加不会错) - 确保没有用
<script src="xxx"></script>这种无 type 的老写法混在旁边,容易误读
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










