You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot 3.0项目加载index.js报404错误求助

排查Spring Boot + Mustache加载JS模块404错误的常见原因

1. 静态资源存放路径不对

Spring Boot默认将src/main/resources/static或public作为静态资源根目录,先确认index.js是否放在这两个目录中,别误放到Mustache模板所在的templates目录下。如果自定义过静态资源路径,去application.properties或application.yml里检查spring.web.resources.static-locations配置,确保指向正确目录,示例:

spring.web.resources.static-locations=classpath:/static/

2. Mustache模板里的JS引用路径错误

打开react.mustache模板,查看加载index.js的路径:

  • 若使用相对路径index.js,访问/react时浏览器会解析为/react/index.js,必然找不到资源。需改为绝对路径/index.js:
    错误写法:
    <script type="module" src="index.js"></script>
    
    正确写法:
    <script type="module" src="/index.js"></script>
    

3. Controller路由映射异常

检查处理/react请求的Controller代码,确保返回的是Mustache模板名称,而非字符串或其他错误内容:

@GetMapping("/react")
public String reactPage() {
    return "react"; // 对应templates/react.mustache文件
}

若Controller返回逻辑错误,模板加载异常会间接导致JS路径解析出错。

4. ES模块内部引用路径有误

如果index.js是ES模块,里面导入其他JS文件时,需使用基于静态资源根的绝对路径,避免相对路径导致的解析错误。比如要导入static/utils.js,应写:

import { foo } from '/utils.js';

若写成./utils.js,浏览器会从/react/路径下查找资源,同样会触发404。

5. 打包时静态资源未被包含

用Maven或Gradle打包后,打开target目录下的jar包,确认BOOT-INF/classes/static/index.js存在。若找不到该文件,检查pom.xml或build.gradle的资源配置,确保src/main/resources下的文件被正确打包进项目。


内容的提问来源于stack exchange,提问作者Flurrih

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 10:27:06