2016-01-27 12 views
7

Mam problemy z działaniem routera reagowania i serwera sieci webpack-dev w celu uzyskania zagnieżdżonego routingu adresów URL.routing z zagnieżdżonymi adresami URL za pomocą routera reagującego routera i serwera dystrybucji WWW

webpack.config.js

output: { 
    path: path.resolve(__dirname, 'build'), 
    publicPath: "/", <-- this enabled routing to /register/step2 
    filename: "js/bundle.js", 
}, 

routes.js

const routes = { 
    childRoutes: [ 
     { path: '/', component: Home }, 
     { path: '/login', component: Login }, 
     { path: '/register', component: Register }, 
     { path: '/register/step2', component: SecondStep }, 
    ] 
}; 

export default (<Router routes={routes} history={createBrowserHistory()} />); 

Po kliknięciu wokół w appliation, mogę dostać się do/Rejestracja/krok2 ale raz uderzę odświeżanie w przeglądarce brakuje mojego pliku common.js i bundle.js: 404, ponieważ próbuje on załadować wszystko z katalogu/register /.

Czy ktoś może pomóc? Dzięki.

Odpowiedz

0

Jeśli użyjesz hashHistory zamiast createBrowserHistory(), serwer nie będzie żądał od twojego aktualnego adresu URL na twoim serwerze.

export default (<Router routes={routes} history={hashHistory} />); 
+0

Czy nie sposób osiągnąć bez używania skrótów? –

+0

Przewodnik na routerze reagującym zaleca przeglądarkę browserHistory na hashHistory. https://github.com/reactjs/react-router/blob/1.0.x/docs/guides/basics/Histories.md#createbrowserhistory –

7

Wymyśliłem to. 2 rzeczy, które są potrzebne, aby to umożliwić.

webpack.config.js

devServer: { 
    historyApiFallback: true <-- this needs to be set to true 
} 


routes.js

const routes = { 
    childRoutes: [ 
     { path: '/', component: Home }, 
     { path: '/login', component: Login }, 
     { path: '/register', component: Register, childRoutes: [ 
      { path: 'step2', component: SecondStep }, 
     ] }, 
    ] 
}; 
+1

historyApiFallback: true, wydaje się, że rozwiązuje problem .. dzięki – pravin

+0

, ale nie z hot reload: http://stackoverflow.com/questions/40159965/enable-single-page-app-react-hot-reload-webpack – Marc