reactjs - react 路由器4和表达: cannot GET

标签 reactjs express react-router

我正在尝试使用 React router 4 和 Express 服务器。

如果我将路径设置为“/”,它就可以工作。 但是如果我设置路径“/test”并访问 test,我会得到“Cannot GET/test”。 是因为 React Router 4 与 Express 不兼容吗?

应用程序客户端.js:

import { BrowserRouter, Route, Switch } from 'react-router-dom';
import Board from './components/Board';

ReactDOM.render(
    <BrowserRouter>
        <div>
            <Route path="/test" component={Board} />
        </div>
    </BrowserRouter>
    , document.getElementById('react-container'));

Board.js:

var React = require('react');
var createReactClass = require('create-react-class');

var Board = createReactClass({
    render(){
        return (<h1>Board</h1>)
    }    
});

export default Board;

最佳答案

为了确保在定义所有 Express 路由后,React 处理所有路由,我们将确保 Express 应用中未处理的任何路由将被重定向到 React 中的 index.html应用程序的处理方式如下:

// All expressjs routes
// then
app.get('*', (req, res) => {                       
  res.sendFile(path.resolve(__dirname, 'the path to your react project', 'index.html'));                               
});

关于reactjs - react 路由器4和表达: cannot GET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49961731/

相关文章:

javascript - 使用 React 正确更新组件状态中的数组

node.js - 在 Node express 中再次调用相同的请求

node.js - 配置nginx直接从node.js Express站点的public文件夹获取js和css

reactjs - 从 react 16.2.0 降级到 react 15.6.2 失败

javascript - 无法从组件访问 props 字段

reactjs - 等待 DOM 上的 useCallback 效果

reactjs - 为什么对象作为 react 子对象无效?什么是有效的 children 的 react 以及为什么?

reactjs - 如何使用 TypeScript 2.3 中新增的支持来限制 TypeScript 中 React Children 的类型?

node.js - deserializeUser 被客户端 requirejs 应用多次调用

reactjs - 如何将旧的 react-router HashRouter(带有 #)重定向到 BrowserRouter?