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

Spring Boot应用URL映射异常:访问路径返回静态资源未找到错误

Spring Boot 404 "No static resource" 问题排查方案

1. 验证Controller路径映射

  • 检查Job Controller是否存在@GetMapping("/")或@GetMapping("/home")的方法映射。如果Controller未覆盖这两个路径,Spring Boot会默认尝试加载静态资源(如index.html),找不到就返回404。
  • 确认Controller类上的@RequestMapping前缀是否和目标路径冲突,比如如果类上标注了@RequestMapping("/jobs"),方法映射路径会是/jobs/xxx,无法匹配/或/home。

2. 检查启动类扫描范围

  • 确保项目启动类添加了@SpringBootApplication注解(该注解包含@ComponentScan),且启动类所在包是Controller所在包的父包或同包。
  • 如果Controller在独立包下,需手动指定扫描路径:
    @SpringBootApplication(scanBasePackages = "com.yourpackage.controller")
    

3. 排查application.properties配置

  • 检查是否配置了spring.mvc.static-path-pattern或spring.web.resources.static-locations,这类配置会覆盖Spring Boot默认静态资源规则。例如设置spring.mvc.static-path-pattern=/static/**后,访问/不会匹配静态资源,若没有对应Controller映射则直接404。
  • 建议暂时注释掉这类自定义配置,恢复默认规则后重试。

4. 确认pom.xml依赖完整性

  • 确保引入了spring-boot-starter-web依赖,这是Web项目核心,缺失会导致Controller无法生效:
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    
  • 可通过mvn dependency:tree命令排查是否存在版本冲突。

5. 分析启动日志

  • 查找日志中HandlerMapping相关输出,确认Controller映射是否成功注册。正常情况下会有类似:

    Mapped "{[/home],methods=[GET]}" onto public java.lang.String com.example.controller.JobController.home()

  • 若没有此类日志,说明Controller未被扫描或映射配置错误。
  • 查看静态资源加载日志,若没有Adding welcome page: class path resource [index.html]的记录,说明无可用静态资源,此时必须有Controller映射才能正常响应。

6. 快速验证测试

  • 在Job Controller中添加临时测试方法:
    @GetMapping("/")
    public String home() {
        return "Home Page Response";
    }
    
    @GetMapping("/home")
    public String homePage() {
        return "Welcome to Home";
    }
    
  • 重启项目后访问对应路径,若能返回字符串,说明Controller功能正常,原问题为无对应路径映射;若仍404,则需排查Controller扫描或依赖问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 07:27:04