Ho pensato che stavo iniziando a capire React Router, ma ho trovato un nuovo muro quando aggiungevo una libreria che carica css per i suoi componenti. Tutto funziona bene quando un navigare da casa mia, alla pagina che contiene il componente, ma quando ho aggiornarlo, gli URL dei font sono rotti ...Come far funzionare il router react con asset statici, modalità html5, API di cronologia e percorsi nidificati?
ho trovato un po 'di puntatore here e here ma senza fortuna finora. E 'un problema comune ? Come aggirare?
Uso il server di sviluppo WebPack con configurazione predefinita creata da yeoman scaffolder.
La libreria che utilizzo è React Fa per visualizzare le icone.
Quando carico la mia app su http://localhost:8000/ tutto viene visualizzato correttamente, quindi si passa a http://localhost:8000/customer/ABCD1234/chat e le mie icone sono ok. Il carattere è stato caricato correttamente.
Poi ho aggiornare la pagina, e vedo nella console:
DOMLazyTree.js 019b:? 56 GET http://localhost:8000/customer/ABCD1234/assets/926c93d201fe51c8f351e858468980c3.woff2
che ovviamente è rotto perché la parte del cliente non dovrebbe essere qui ...
Ecco il mio router finora:
ReactDOM.render(
<Router history={browserHistory}>
<Route path='/' component={App}>
<IndexRoute component={Index}/>
<Route path='customer/:id' component={Customer} />
<Route path='customer/:id/chat' component={CustomerChat}/>
<Route path="*" component={ NotFound } />
</Route>
</Router>
, document.getElementById('support-app'));
ho anche provato ad aggiungere un <base href="/"/>
al mio index.html, ma ho un bel avvertimento in rosso nella console, quindi forse non è la migliore idea:
Attenzione: Impostazione automatica basename utilizzando è deprecato e sarà rimosso nella prossima major release. La semantica di è leggermente diversa da basename. Si prega di passare il nome base esplicitamente nelle opzioni per createHistory
In teoria, penso che funzionerebbe, ma il bene in questione è un font, caricato da un font fantastico come ho menzionato. E non posso cambiare il percorso, a meno che non costruisca font fantastico da SCSS per conto mio, ma perdo i vantaggi di CDN ... Ecco il CSS: https://maxcdn.bootstrapcdn.com/font-awesome/4.6.1 /css/font-awesome.min.css – Sephy
Come gestiresti le diverse fonti di risorse statiche. Perché penso che il mio problema potrebbe venire da qualcosa di simile. Come fontawsome sono caricati con un percorso relativo ma le mie immagini provengono da un percorso di asset assoluto, proprio come dici ... – Sephy
Stai usando un semplice CSS nel tuo progetto o SASS? Se quest'ultimo, preferirei includere font-awesome nel mio progetto e ridefinire il percorso di base, che dover gestire più percorsi di risorse: http://fontawesome.io/get-started/ – hampusohlsson