Spring Boot - 控制器找不到index.html

时间:2017-12-15 19:42:24

标签: spring-boot

我使用SpringBoot 1.5.9并创建了src/main/resources/static/index.html

<!DOCTYPE html><html><head><meta charset="utf-8"/>
<title>Home</title></head>
<body><h2>Hello World!!</h2></body>
</html>

我的简单控制器处理“/”并转发到index.html:

@Controller
    public class MyController {
        @RequestMapping("/")
        public String home(Model model) {
            System.out.println("In MyController!!!");
            return "index";
    }}

然而,当我运行我的主要方法之后:

@SpringBootApplication
public class MySpringBoot2Application {
    public static void main(String[] args) {
        SpringApplication.run(MySpringBoot2Application.class, args);
    }
}

我将浏览器指向:http://localhost:8080/ 我正进入(状态: 白标错误页面 - 出现意外错误(type=Not Found, status=404)

但是,如果我尝试直接访问该页面 - 它工作正常: http://localhost:8080/index.html

基于SpringBoot文档,应呈现src/main/resources/static/下的静态内容。 如果我创建文件夹src/main/resources/templates/并将index.html放在那里,并在我的pom.xml中包含spring-boot-starter-thymeleaf依赖项,那么一切都很好。但是我很困惑为什么这个src / main / resources / static / index.html的基本渲染 不管用。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:3)

刚找到解决方案:控制器MyController应该指定文件扩展名:

import { fork, takeLatest } from 'redux-saga/effects';

export function* watchSubmitLike() {
  yield fork(takeLatest, SUBMIT_LIKE, submitLikeSaga);

}

答案 1 :(得分:0)

最好在Spring Boot配置中添加viewResolver

@Configuration
public class MvcConfig extends WebMvcConfigurerAdapter{

    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/home").setViewName("home");
        registry.addViewController("/").setViewName("login");
        registry.addViewController("/403").setViewName("403");
    }    


    @Bean
    public InternalResourceViewResolver viewResolver() {
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("/WEB-INF/views/");
        resolver.setSuffix(".jsp");
        return resolver;
    }    

}