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

Spring Boot页面访问404,日志提示WEB-INF路径异常,加依赖仍未解决

问题:访问页面出现404,日志提示WEB-INF路径资源无法直接访问

访问页面时触发404错误,日志输出如下:

o.s.w.s.r.ResourceHttpRequestHandler: "Path with "WEB-INF" or "META-INF": [WEB-INF/views/main.html]"

相关配置及代码如下:

应用配置(application.properties)

spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.html

控制器代码

@RestController
@RequestMapping(value = "/main")
public class MainController {

    @GetMapping(value = "/")
    public ModelAndView showMainPage() {
        ModelAndView mv = new ModelAndView();
        mv.setViewName("main");
        return mv;
    }

}

项目结构

标准Spring Boot Web项目结构,WEB-INF/views目录下存在main.html文件

已导入的Maven依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
</dependency>

<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
</dependency>

已尝试上述配置但问题仍未解决,请求排查原因并给出解决方案。


解决方案

核心问题:控制器注解错误

你使用的@RestController注解会让控制器方法的返回值直接作为响应体(如JSON或字符串)返回,而非通过视图解析器渲染页面。视图解析器生成的/WEB-INF/views/main.html路径被当成普通字符串返回后,浏览器直接请求该路径,但WEB-INF是受保护目录,外部无法直接访问,因此触发404。

修复步骤

  • 将控制器上的@RestController替换为@Controller:
    @Controller
    @RequestMapping(value = "/main")
    public class MainController {
    
        @GetMapping(value = "/")
        public ModelAndView showMainPage() {
            ModelAndView mv = new ModelAndView();
            mv.setViewName("main");
            return mv;
        }
    
    }
    
  • 验证依赖配置(当前依赖已满足要求,无需修改):
    • tomcat-embed-jasper是Spring Boot渲染HTML/JSP视图的必需依赖
    • spring-boot-starter-tomcat在打包成WAR包时需设置provided作用域;若直接运行Jar包,可移除该依赖(Spring Boot会自动嵌入Tomcat)
  • 确认项目结构:确保main.html确实放在src/main/webapp/WEB-INF/views目录下(Maven项目),Gradle项目对应src/main/webapp路径。

补充说明

  • @RestController等价于@Controller + @ResponseBody,适合编写API接口;渲染页面必须用@Controller,让Spring MVC通过视图解析器找到对应HTML文件并返回渲染后的页面。
  • WEB-INF目录的资源只能通过控制器转发访问,直接请求会被拦截,这也是日志提示相关信息的原因。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 13:10:26