2016-03-19 35 views
1

Im對react/redux應用使用反應彈弓啓動器項目。當我使用像/foo這樣的路由時,熱重載很有效,但我發現熱重載在/foo/bar等子路徑上不起作用。我沒有做任何改動外的現成的的WebPack配置文件,它可以在這裏找到https://github.com/coryhouse/react-slingshot/blob/master/webpack.config.jsReact彈弓 - 在使用反應路由器子路由時返回404在hot-update.json上的Webpack熱中間件

我得到404 GET http://localhost:3004/orders/c344e97ed1fbc2923017.hot-update.json 404 (Not Found)的CreateOrder組件上時,我有以下途徑配置:

<Route path="/" component={App}> 
    <Route path="login" component={Login} /> 
    <Route path="orders" component={OrderPanel} /> 
    <Route path="orders/create" component={CreateOrder} /> 
    <Route path="*" component={NotFoundPage} /> 
</Route> 

但是,當我改變從訂單/創建到創建的路徑時,它不會返回一個404.

似乎熱更新中間件試圖從/ orders子路由中獲取hot-update.json ?

回答

1

只是爲了完整性和任何人與彈弓的舊版本有這個問題。 這也在issue 75提到固定here通過更換:

publicPath: '', 

publicPath: '/', 

webpack.config.js

UPDATE: 從reduckted的評論的publicPath已開始和斜線結束。替換:

publicPath: 'dist/', 

publicPath: '/dist/', 
+0

也有類似的問題。我已經有了一個以斜槓結尾的公共路徑。我通過使用斜線製作公共路徑_start_來修復它。例如,我有'publicPath:'dist /'',但必須將其更改爲'publicPath:'/ dist /''。 – reduckted

+0

@reduckted我已經更新了我的答案。感謝您指出了這一點。 –

0

publicPath配置是不是我的問題。 如果你使用的是redux,可以試試這個。

由於一些隨機原因redux-devtools不允許我熱重裝。嘗試從根組件和redux compose配置中刪除它。

注意:使用終極版devtool瀏覽器擴展與此配置在您的存儲配置:window.devToolsExtension ? window.devToolsExtension() : f => f

而且,必須閱讀:https://medium.com/@rajaraodv/webpacks-hmr-react-hot-loader-the-missing-manual-232336dc0d96#.ejpsmve8f

或者試試熱重裝3: 例如:https://github.com/gaearon/redux-devtools/commit/64f58b7010a1b2a71ad16716eb37ac1031f93915