首页 > 解决方案 > 用于“/.../...”形式的 URL 的 Spring 和 React Router

问题描述

我使用 Spring 作为后端,React 作为前端,我让 React Router 处理前端的所有页面路由。为此,我在下面的索引控制器将所有路径路由到“index.html”,基本上允许 React 接管路由。我正在使用正则表达式/{path:[^\\.]*}来路由所有路径,它工作得非常好,除了它只适用于“.com/...” URL 格式而不适用于“.com/.../...”。每当我使用 React 路由器设置“.com/.../...”时,我都会收到类似于访问未定义端点时的 404 错误。

    @Controller
    public class IndexController {
        @RequestMapping(value = "/{path:[^\\.]*}") //
        public String index(Map<String, Object> model) {
            return "index.html";
        }
    }

澄清一下:诸如“.com/api/users/1”之类的端点可以让 id 为 1 的用户完美地工作,因为它们是在我的后端控制器中定义的,但是我遇到了一些问题<Route exact path="/startuppage/:id" component={StartupPage} />。我不能把它作为后端端点,因为我想在这个 URL 上显示一个页面,而不仅仅是让它返回一些数据库对象。

我的路线的 ReactJS 代码:

<Switch>
    <Route exact path="/" component={Home} />
    <Route path="/database" component={Database} />
    <Route path="/submission" component={Submission} />
    <Route path="/submitted" component={Submitted} />
    <Route exact path="/startuppage/:id" component={StartupPage} />
</Switch>

标签: reactjsspringreact-router

解决方案


推荐阅读