项目背景:
项目前端用的react,后台用springboot,前端用的history路由方式,由此产生的问题是,假设浏览器url输入地址为:localhost:8080/front/index.html,从后台角度而言这是一个后台路径,而非前端路由,会从controller查找有无该路径对应的view,而实际,这是前端的一个路由,只需后台返回给前端index.html页面即可
如何实现:
前端页面统一是/front开头,将/front开头的路径全部转到/index.html页面(前端代码编译后只有一个index.html文件),前端编译后的代码放在static目录下,而springboot默认跳转templates目录下的文件,而static目录下的文件可直接通过路径访问。
@RequestMapping("/front/**")
public String insight() {
//return "/index.html"; 不能这样写,这样写会到templates目录下找
return "forward:/index.html"; //实际访问static目录下的index.html文件,即 localhost:8080/index.html
}
ps:原本用的return “redirect:/index.html”,但是后面发现,无论前端在哪个页面,刷新后都会跳到首页,原因就是路径重定向了,前端不需要后台重定向地址,故改成服务器端跳转(return “forward:/index.html”)问题成功解决