2016-01-19 14 views
28

Eseguo webpack-dev-server dalla cartella principale del mio progetto. Ho beni cartella in /src/attività che viene copiato da CopyWebPackPlugin:Elaborazione di asset statici nel server di sviluppo Web

new CopyWebpackPlugin([ { from: 'src/assets', to: 'assets' } ]) 

Se metto logo.png cartella attivi all'interno quindi Dopo l'esecuzione webpack-dev-assistente non posso accesso http://localhost/assets/logo.png file, ma può accedere al file http://localhost/src/assets/logo.png. Tuttavia, se corro in modalità di produzione, la situazione si capovolge.

Come configurare il server Webpack per rendere http://localhost/assets/logo.png file accessibile in modalità sviluppo?

risposta

11

È possibile indicare al webpack di utilizzare un percorso diverso durante il caricamento dal browser.

Nella sezione output del file di configurazione webpack aggiungere un campo publicPath che punta alla cartella assets.

webpack.config.js

output: { 
    // your stuff 
    publicPath: '/assets/' 
} 
+1

Qualcuno può pubblicare un webpack.config.js funzionante? E la versione di copy-webpack-plugin che stanno usando? –

+0

Questo mi stava facendo impazzire! Grazie mille per questa risposta! –

+0

@TonyGutierrez hai ancora bisogno di un esempio? Felice di condividere il mio. –

24

vorrei aggiungere che è stato il contrario per me. Originariamente avevo le mie immagini e i file .obj/.mtl in una cartella public che esisteva nella radice della mia applicazione. Li ho spostati in una cartella assets creata nella cartella app.

Esecuzione di un npm install --save-dev copy-webpack-plugin e aggiungendo il

new CopyWebpackPlugin([ { from: 'src/assets', to: 'assets' } ]) 

al file webpack.common.js risolto il mio problema.

+4

Grazie, mi ha dato quello di cui avevo bisogno. Nel mio caso, 'publicPath' doveva essere'/'perché il mio file' index.html' fosse compilato correttamente, ma avevo bisogno dei miei file statici in '/ static /'. Questo lo ha risolto. – webnoob

Problemi correlati