2017-05-26 206 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