2016-06-22 31 views
5

Costruisco un progetto con Webpack e react-rounter. questo è il mio codice:Utilizzo di Webpack con React-router bundle.js non trovato

ReactDOM.render(
 
    <Provider store={store}> 
 
     <Router history={ browserHistory }> 
 
      <Route path='/' component={ App } > 
 
       <IndexRoute component={ Home } /> 
 
       <Route path="purchase" component={ Purchase } /> 
 
       <Route path="purchase/:id" component={ Purchase } /> 
 
      </Route> 
 
     </Router> 
 
    </Provider>, 
 
    document.getElementById('example') 
 
);

Quando chiedo "http://127.0.0.1:3001/purchase", è un lavoro! ma l'indirizzo "http://127.0.0.1:3001/purchase/a" ha un errore. cercare il messaggio di errore: enter image description here

mio WebpackDevServer config è:

new WebpackDevServer (webpack(config), { 
 
    publicPath: config.output.publicPath, 
 
    hot: true, 
 
    noInfo: false, 
 
    historyApiFallback: true 
 
}).listen(3001, '127.0.0.1', function (err, result) { 
 
     if (err) { 
 
      console.log(err); 
 
     } 
 
     console.log('Listening at localhost:3001'); 
 
    });

non so che cosa la materia, Aiutami!

risposta

19

Si sta utilizzando un percorso relativo per descrivere il percorso di bundle.js nel proprio index.html.

Si dovrebbe usare percorso assoluto per bundle.js nel vostro index.html

Percorso assoluto contiene la directory principale e tutte le altre sottodirectory in cui è contenuto un file o una cartella.

Se si trova nello stesso percorso con index.html.

es.

public/index.html

public/bundle.js

Questo risolverebbe il problema.

<script src="/bundle.js"></script> 
+0

Fantastico! Risolve il mio problema. Grazie ragazzi! –

+1

molto impressionante! Vorrei aver trovato la risposta qualche ora fa: p – challenger

+1

Ma il mio index.html non ha bundle.js nel file, è inserito automaticamente in qualche modo e con un percorso relativo. – Curtis