在子目录中反应路由错误

时间:2017-05-15 23:03:59

标签: reactjs routes

我做了路由

    render(
      <Provider store={store}>
          <Router history={browserHistory }>
            <Route path='/MyAppName' component={TopContainer}>
                <IndexRoute component={Login} />
                <Route path='/main' component={MainRouteContainer} />   
                <Route path='/popup' component={StackViewContainer} />  
            </Route>
        </Router>
      </Provider>,
      document.getElementById('root')
    )

我有一个apache http目录

/var/www/html

由于还有其他网络应用,所以我需要一个子目录

/var/www/html/MyAppName

上面目录中的文件是index.html和bundle.js。

如果我使用

访问它,上面的路由代码工作正常
http://www...com/MyAppName

问题是一次&#34; / main&#34;访问,地址字段中的URL变为     http://www...com/MyAppName/main

此时,页面上的重新加载将导致找不到&#34;页面#34;因为没有&#34;主要&#34;在MyAppName下(仅限bundle.js)。

有什么建议吗?

感谢

1 个答案:

答案 0 :(得分:1)

您可以将basename属性添加到Router标记

<Router history={browserHistory} basename="/subdirectory/path">

或使用HashRouter中的react-router-dom。使用hashRouter,您不需要basename attribute

<HashRouter>