如何在客户端使用React的BrowserRouter和服务器上的Java REST API(Spring Boot)?

Kar*_*l.S 7 javascript java reactjs spring-boot react-router-v4

我想在客户端上使用React,在REST服务器上使用Java Spring Boot,客户端和服务器都打包在一起,因此它们托管在同一个应用服务器上.

我已经可以通过/api路径查询服务器API .

但是,(如何)我可以使用BrowserRouterreact-router-dom客户端,而不是在(路由器V4) HashRouter

我不太了解Spring Boot,但我想我可以在服务器上查看路由是否匹配/api,然后我会返回index.html带有基于HTTP查询位置路径处理路由的所有反应逻辑?

我希望我很清楚,我不希望URL中的哈希值和路由必须在客户端上完成.

Kar*_*l.S 1

我终于找到了如何捕获所有 GET 请求并返回我的 React 应用程序,这非常简单,只需使用通配符*,请注意,这/*是行不通的。

@Value("${server.servlet.context-path}")
private String contextPath;

@GetMapping("*")
public ModelAndView defaultPage(Map<String, Object> model) {
    model.put("contextPath", contextPath);
    return new ModelAndView("index", model);
}
Run Code Online (Sandbox Code Playgroud)

在这个例子中,索引指向这个文件/src/main/resources/static/index.html