springmvc中静态资源404主因是路径错误或dispatcherservlet拦截:1.相对路径未以“/”开头导致解析为controller路径;2.web.xml中<servlet-mapping>配置为“/”时未放行.js等静态资源;3.需在springmvc.xml加<mvc:resources>或web.xml配default servlet映射。

页面里写了 <script src="js/jquery.min.js"></script> 却在浏览器控制台报红字“Failed to load resource: the server responded with a status of 404 (Not Found)”,说明 jQuery 文件根本没被浏览器拿到,不是代码写错,而是路径断了、服务器拦了、CDN挂了或本地文件压根不存在。
检查本地路径是否真实存在
打开浏览器开发者工具(F12)→ Network 标签页 → 刷新页面 → 找到 jquery.min.js 这一行,看 Status 列是不是 404;如果是,右键该请求 → Open in new tab,浏览器会跳转到一个空白页并显示类似 “Cannot GET /js/jquery.min.js” 的提示——这说明你写的路径在服务器上确实找不到这个文件。
在项目文件夹里手动找:确认 【js 文件夹必须和 HTML 文件在同一级目录下】,比如 index.html 在根目录,那 js/ 就得是根目录下的子文件夹,不能是 src/js/ 或 assets/js/ 却还在 HTML 里写 src="js/jquery.min.js"。
VS Code 用 Live Server 插件启动时,它只服务当前打开的文件夹根目录;如果你打开的是子文件夹,HTML 里的相对路径就会全部错位。
绕过本地路径,直接用 CDN 引入
方法一:使用 jsDelivr(全球加速、无访问限制)
<script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js"></script>
方法二:使用 unpkg(自动解析最新版,适合开发调试)
<script src="https://unpkg.com/jquery@latest/dist/jquery.min.js"></script>
方法三:国内可用的百度 CDN(已稳定多年,但仅支持旧版)
<script src="https://bdimg.share.baidu.com/static/api/jquery.min.js"></script> ← 注意:这个地址不支持 3.x 版本,只认 1.x/2.x;若强行写 3.7.1 会 404。
SpringMVC 项目中静态资源被拦截
第一步:确认 web.xml 中前端控制器是否拦截了 *.js 请求。如果配置了 <url-pattern>/</url-pattern>,默认会拦截所有请求,包括 JS、CSS、图片。
jQuery 1.12.4是jQuery 1.x系列的最后一个正式稳定版本,由jQuery团队于2016年发布。该版本主要面向需要兼容旧版浏览器环境的网站和Web应用,尤其适用于仍需支持Internet Explorer 6、Internet Explorer 7、Internet Explorer 8等老旧浏览器的项目。
第二步:在 springmvc.xml 中添加静态资源放行配置:
<resources mapping="/js/**" location="/js/"></resources>
<resources mapping="/css/**" location="/css/"></resources>
第三步:若仍不行,检查 web.xml 是否漏配 default servlet 映射(Tomcat 默认处理静态资源):
<servlet-mapping><br> <servlet-name>default</servlet-name><br> <url-pattern>*.js</url-pattern><br></servlet-mapping>
这一步不做,SpringMVC 会把 .js 当作接口请求转发给 DispatcherServlet,而它根本不会去磁盘找文件,直接 404。
检查浏览器安全策略与 MIME 类型错误
如果控制台报错里同时出现 “Refused to execute script… because its MIME type ('text/html') is not executable”,说明服务器返回的不是 JS 文件,而是 HTML 错误页(比如 Nginx 的 404 页面),浏览器尝试把它当 JS 执行就失败了。
这种现象常见于:用 VS Code Live Server 直接双击打开 HTML(file:// 协议),然后 src="../js/jquery.min.js" 指向了上级目录——file 协议下跨目录访问被浏览器禁止,服务器根本没参与,所以返回空或乱码,MIME 类型自然不对。
【必须通过 HTTP 协议访问,不能双击打开 HTML 文件】
用 Python 快速起服务:终端进入项目根目录,运行 python3 -m http.server 8000,然后浏览器访问 http://localhost:8000/index.html。










