我想配置我的Spring Boot应用程序以将任何404未找到的请求重定向到我的单页应用程序。
例如,如果我正在呼叫localhost:8080/asdasd/asdasdasd/asdasd不存在的呼叫,则应将其重定向到localhost:8080/notFound。
localhost:8080/asdasd/asdasdasd/asdasd
localhost:8080/notFound
问题是我只有一个页面react应用程序,它在根路径下运行localhost:8080/。因此,spring应该重定向到localhost:8080/notFound,然后转发到/(以保持路由)。
localhost:8080/
/
这应该可以解决问题:为404添加一个错误页面,该页面路由到/notFound,然后将其转发到您的SPA(假设该条目位于/index.html):
/notFound
/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")); }; } }