ReactJS 路由器不工作

ReactJS router not working

抱歉,如果这是一个重复的问题。我似乎无法解决这个问题或找到答案。我有一个适用于 IndexRoute 的基本 React Router 设置(localhost:8080/ 或 localhost:8080 渲染)。模板按照我想要的方式嵌套,但子路由 '/test1、/test2 和 /test3 不呈现。我得到 Cannot GET /test1 这是我的代码:

import React from "react";
import ReactDOM from "react-dom";
import { Router, Route, IndexRoute, browserHistory } from "react-router";

import Index from "./pages/Index";
import Layout from "./pages/Layout";
import Test1 from "./pages/Test1";
import Test2 from "./pages/Test2";
import Test3 from "./pages/Test3";

const app = document.getElementById('main');

ReactDOM.render(
  <Router history={ browserHistory }>
    <Route path="/" component={Layout}>
      <IndexRoute component={Index}></IndexRoute>
      <Route path="test1" component={Test1}></Route>
      <Route path="test2" component={Test2}></Route>
      <Route path="test3" component={Test3}></Route>
    </Route>
  </Router>,
app);

我试过重命名没有数字的路径和组件,也试过 path='/test1'

我猜这是一个小错误。我做错了什么?

看起来您的服务器配置遗漏了这一部分:

// All routes should resolve with `index.html`
app.get('*', function (request, response){
    response.sendFile(path.resolve(__dirname, 'public', 'index.html'))
})

public 更改为您拥有主要 index.html 的地方。

您也可以使用 express-history-api-fallback,如果您使用 express:

app.use(staticFallback('index.html', { root: buildDir }));