在vue脚手架搭建的前端代码中,可以按照正常的路由信息进行路由的设置,完全没有问题,但是把打包好的前端代码放在spring boot的项目中,发现可以跳转,但是无法刷新,一开始以为是路径设置的错误,后来发现是前端的问题,这时候就需要进行相关的设置,进行一圈查询后,使用的解决方案如下:
参考https://blog.csdn.net/qq_30051139/article/details/80074092
@SpringBootApplication
public class BlogApiApplication {
public static void main(String[] args) {
SpringApplication app = new SpringApplication(BlogApiApplication.class);
app.run(args);
}
@Bean
public EmbeddedServletContainerCustomizer containerCustomizer() {
return new EmbeddedServletContainerCustomizer() {
@Override
public void customize(ConfigurableEmbeddedServletContainer container) {
ErrorPage error404Page = new ErrorPage(HttpStatus.NOT_FOUND, "/index.html");
container.addErrorPages(error404Page);
}
};
}
}
但是在spring boot2.0之后的版本中已经不支持EmbeddedServletContainerCustomizer 的配置了。
Spring Boot2.0以上配置嵌入式Servlet容器时EmbeddedServletContainerCustomizer类不存在,经网络查询发现被WebServerFactoryCustomizer替代
经过更改后的代码如下:
@Bean
public WebServerFactoryCustomizerwebServerFactoryCustomizer() {
return new WebServerFactoryCustomizer() {
@Override
public void customize(ConfigurableWebServerFactory container) {
ErrorPage error404Page =new ErrorPage(HttpStatus.NOT_FOUND, "/index.html");
container.addErrorPages(error404Page);
}
};
}@Bean
public WebServerFactoryCustomizerwebServerFactoryCustomizer() {
return new WebServerFactoryCustomizer() {
@Override
public void customize(ConfigurableWebServerFactory container) {
ErrorPage error404Page =new ErrorPage(HttpStatus.NOT_FOUND, "/index.html");
container.addErrorPages(error404Page);
}
};
}
经过测试,可以进行正常的跳转了。