2017-05-26 158 views
1

我想在我的提供程序中创建路由,但它不适用于嵌套级别。反应路由器嵌套不工作

直到一个级别,它工作正常。

查找下面

render(
    <Provider store={store}> 
    <Router history={browserHistory}> 
    <Route path="/" component={PageTemplate}> 
     <Route path="/login" component={Login}/> 
     <Route path="/secure" component={BodyTemplate}> 
     <Route path="page1" component={Page1}/> 
     <Route path="page2" component={Page2}/> 
     <Route path="page3" component={Page3}/> 
     </Route> 
     <Route path="*" component={InvalidPage}/> 
    </Route> 
    </Router> 
</Provider>, document.getElementById('app')) 

的代码片段。如果我打开URL localhost:3000/login它做工精细

,但如果我把它的URL localhost:3000/secure/page1 我看到在浏览器控制台如下错误

bundle.min.js:1未捕获的语法错误:意外的代币<

如果我的路由器配置有问题,请帮助我。

+0

尝试'/ page1','/ page2','/ page3'为'path'道具。 –

+0

我试过了......它不工作..即使我只是给第一级URL后的“/”我得到的错误...例如:“http:// localhost:3000/login /”但“http:// localhost:3000/login”正常工作 – Pathfinder

+1

你生成的index.html文件是什么样的?具体来说,如何包含bundle.min.js文件? –

回答

1

改变从

<script src="bundle.min.js"></script> 

脚本加载到

<script src="/bundle.min.js"></script> 

的工作,因为它正试图当我们去到第二级即localhost:3000/login/bundle.min.js这是错误的将其更改为从乌尔当前URL加载到根URL使其工作localhost:3000/bundle.min.js