2015-05-27 10 views
21

Ho due file:webpack richiedere immagine relativa

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

In target.js:

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

Con 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' }, 

Che compila l'immagine in ./[hash].png.

Ora, io uso react-router, quindi sono a /help/targets/target e webpack sta dando all'immagine questo percorso /help/targets/[hash].png dove hash è una somma sha1. Preferirei che gli desse il percorso /[hash].png. Solo

Come faccio a capire che il webpack per questo file js, il percorso del file per l'immagine è relativo allo stesso modo del browser?

+1

Devi davvero usare 'require()' all'interno dell'attributo tag 'src' dell'immagine? Non sembra strano? – Green

+1

Sì, oppure puoi dividere il tuo tag Henrik

risposta

19

Il trucco è quello di dare un webpack config-suggerimento su cosa basare i suoi percorsi on:

Usa:

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

di non dire webpack essere relativo.

+2

ti benedica. Grazie – denvaar

+0

@denvaar grazie :) – Henrik