2015-05-27 14 views
21

Ich habe zwei Dateien:webpack erfordern relativ Bild

  • ./img/mypic.png
  • ./js/help/targets/target.js

In target.js:

<img src={require("../../../img/target.png")} /> 

Mit webpack.config.js:

14 module: { 
15  loaders: [ 
16  { test: /\.js$/, loader: 'jsx-loader?harmony' }, 
17  { test: /\.css$/, loader: 'style-loader!css-loader' }, 
18  { test: /\.(png|jpg|jpeg|gif|woff)$/, loader: 'url-loader?limit=8192' }, 

Die kompiliert das Bild in ./[hash].png.

Jetzt benutze ich react-router, also bin ich bei /help/targets/target und Webpack gibt das Bild diesen Pfad /help/targets/[hash].png wo Hash ist eine sha1 Summe. Ich würde es bevorzugen, wenn es den Pfad /[hash].png gab. Nur

Wie mache ich Webpack verstehen, dass für diese JS-Datei der Dateipfad zum Bild auf die gleiche Weise wie im Browser relativ ist?

+1

Müssen Sie 'require()' wirklich innerhalb des Image-Tags 'src' verwenden? Sieht es nicht komisch aus? – Green

+1

Ja, oder Sie können Ihr ' Henrik

Antwort

19

Der Trick ist webpack einen config-Tipp zu geben, was seine Wege auf stützen:

Verwendung:

"output": { "publicPath": "/" } 

webpack zu sagen, nicht relativ zu sein.

+2

segne dich. Danke – denvaar

+0

@denvaar danke :) – Henrik