反应路由器公共路径网址

时间:2016-08-13 02:24:51

标签: javascript reactjs react-router

在我阅读的所有教程中,他们使用和设置react-router与" /"他们的路径路径和http://mysite.or/作为他们的域名。如果我想要" http://mysite.or/something"为我的基本路径(家)。我只需要更改(添加)" /"在react-router上成为" / something"。还是有正确的方法来做到这一点?

2 个答案:

答案 0 :(得分:1)

是的,如果您使用路径作为" / something"对于父路由组件然后/某些东西将是基本路径。但最好使用" /"在父级,您创建一个子视道路径组件与基本路径" / something"

<Route path="/">
  <Route path="/something">
     //Put routes that needs base path as /something/...
  </Route>
</Route>

答案 1 :(得分:0)

现在看来 basename 是解决此问题的正确方法。

我喜欢为此使用 PUBLIC_URL,以便我可以针对不同的部署场景更改它。

<Router basename={process.env.PUBLIC_URL}>

https://reactrouter.com/web/api/BrowserRouter/basename-string

<块引用>

基名:字符串

所有位置的基本 URL。如果您的应用程序是从服务器上的子目录提供的,您需要将其设置为子目录。格式正确的基本名称应该有一个前导斜杠,但没有尾随斜杠。

<BrowserRouter basename="/calendar">
    <Link to="/today"/> // renders <a href="/calendar/today">
    <Link to="/tomorrow"/> // renders <a href="/calendar/tomorrow">
    ...
</BrowserRouter>