小编典典

配置Spring Boot以将404重定向到单页应用

spring-boot

我想配置我的Spring Boot应用程序以将任何404未找到的请求重定向到我的单页应用程序。

例如,如果我正在呼叫localhost:8080/asdasd/asdasdasd/asdasd不存在的呼叫,则应将其重定向到localhost:8080/notFound

问题是我只有一个页面react应用程序,它在根路径下运行localhost:8080/。因此,spring应该重定向到localhost:8080/notFound,然后转发到/(以保持路由)。


阅读 971

收藏
2020-05-30

共1个答案

小编典典

这应该可以解决问题:为404添加一个错误页面,该页面路由到/notFound,然后将其转发到您的SPA(假设该条目位于/index.html):

@Configuration
public class WebApplicationConfig extends WebMvcConfigurerAdapter {

    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/notFound").setViewName("forward:/index.html");
    }


    @Bean
    public EmbeddedServletContainerCustomizer containerCustomizer() {
        return container -> {
            container.addErrorPages(new ErrorPage(HttpStatus.NOT_FOUND,
                    "/notFound"));
        };
    }

}
2020-05-30