Spring捕获index.html的所有路由
我正在为基于React的单页应用程序开发spring后端,在其中我使用React-Router进行客户端路由。
在index.html页面旁边,后端在路径上提供数据/api/**
。
为了src/main/resources/public/index.html
在/
我的应用程序的根路径上提供index.html,我添加了一个资源处理程序
@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/").addResourceLocations("/index.html");
}
我想要的是在没有其他路由匹配时(例如,当我调用以外的路径时)提供index.html页/api
。
在spring如何配置这种全包式路线?
回答:
由于我的React应用程序可以将根用作前进目标,因此最终为我工作
@Configurationpublic class WebConfiguration extends WebMvcConfigurerAdapter {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/{spring:\\w+}")
.setViewName("forward:/");
registry.addViewController("/**/{spring:\\w+}")
.setViewName("forward:/");
registry.addViewController("/{spring:\\w+}/**{spring:?!(\\.js|\\.css)$}")
.setViewName("forward:/");
}
}
老实说,我不知道为什么必须严格按照这种特定格式来避免无限转发循环。
以上是 Spring捕获index.html的所有路由 的全部内容, 来源链接: utcz.com/qa/401997.html