React router 4 HashRouter,如何在url中隐藏哈希?

时间:2017-12-08 11:15:48

标签: reactjs react-router-v4

我正在使用react-router-4 HashRouter,因为我将我的静态构建放到AWS桶中并通过cloudfront提供服务。所以基本上我在前端没有服务器来支持BrowserRoute。

我想要的是:example.com/#/accounts_ to be _example.com/accounts
在角度1.x中,我会使用$locationProvider.html5Mode(true)来实现相同的目标。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

您可以使用BrowserRouter。我建议阅读客户端和服务器路由的工作原理。

使用此方法,如果您计划在生产环境中使用任何内容,则需要将该环境配置为具有到索引页的回退路由,然后处理客户端路由。

import { BrowserRouter, Switch, Route } from 'react-router-dom';

<BrowserRouter>
  <Switch>
    <Route exact path="/foo" component={FooController}
    <Route path="/foo/bar" component={FooController} />
  </Switch>
</BrowserRouter>

你的webpack.config.js

devServer: {
  historyApiFallback: true,
},