404错误指浏览器请求的js文件在服务器上不存在,需检查script标签src路径是否正确、文件是否真实部署、是否使用file://协议导致限制、构建产物路径是否匹配及服务器静态资源配置是否合理。

HTML中<script>标签加载外部JS时返回404</script>
不是HTML文件本身报404,而是页面里用<script src="..."></script>引入的JS文件被服务器返回404。浏览器控制台Network面板会明确标出那个.js请求的状态码是404,且响应体为空或含“Not Found”。这和整个页面打不开是两回事,得单独查脚本路径。
- 检查
src属性值是否拼写错误,比如src="js/main.js"但实际文件在assets/js/下 - 确认该JS文件确实存在于服务器对应路径,且扩展名是
.js(不是.js.txt或隐藏了扩展名) - 路径是相对于当前HTML所在位置解析的,不是相对于网站根目录——除非你用了以
/开头的绝对路径 - 如果用了构建工具(如Vite、Webpack),检查打包后
dist目录里是否真生成了那个JS文件,以及index.html里写的src是否匹配输出路径
本地直接双击打开HTML导致script 404
用file:///协议打开HTML时,浏览器会禁用跨源请求,且对相对路径的解析行为异常。此时哪怕script src="app.js"和HTML在同一文件夹,Chrome/Firefox也可能报404或CORS错误——这不是服务器问题,是协议限制。
- 必须启动本地HTTP服务,例如用
npx serve、python3 -m http.server或VS Code的Live Server插件 - 避免在地址栏手动输入
file://路径;一旦看到地址栏有file://,基本可以确定是这个原因 - 某些老项目依赖
XMLHttpRequest或fetch读取本地JSON,同样会在file://下失败,表现也像404
Web服务器配置导致script 404但HTML正常
HTML能打开,但里面的script、img、css全404,大概率是服务器没正确配置静态资源路由或MIME类型。典型场景:用Nginx代理前端,但没配location /static/块;或Apache的.htaccess里误加了重写规则,把所有.js请求都转走了。
- 检查Nginx配置里是否有类似
location ~ \.js$ { ... }的块,是否错误地返回了404或跳转 - 确认服务器是否允许读取
.js文件(Linux下注意chmod权限,特别是group或other位) - 查看服务器日志,比如Nginx的
error.log,搜索"GET /xxx.js" 404那一行,看它实际尝试读取的物理路径是什么 - 用
curl -I http://localhost/path/to/script.js验证响应头,重点看Content-Type是不是application/javascript,否则可能是MIME配置缺失
构建产物路径与HTML引用不一致
现代前端项目build后,JS文件名常带hash(如main.a1b2c3.js),而HTML里写的还是main.js——这是最常见的构建部署类404。Vite、Create React App、Vue CLI默认都这样,但如果你手动复制了HTML却忘了同步更新src,就会出问题。
- 打开构建后的
index.html,直接看里面<script src="..."></script>的值,再和dist目录下的真实文件名比对 - 确保构建命令执行完整,没有因
package.json里"build"脚本写错而生成空dist - 如果用了CDN或子路径部署(如部署到
https://example.com/myapp/),需配置base参数(Vite的base、Webpack的publicPath),否则所有src都会少一层前缀
file://下是协议限制,在http://下可能是路径错、权限错、构建错或配置错——得先看地址栏协议,再看Network里具体哪个请求挂了,最后才查文件和配置。不区分场景就瞎改路径,只会让问题更模糊。前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











