2015-05-27 18 views
21

Tôi có hai tập tin:webpack đòi hỏi hình ảnh tương đối

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

Trong target.js:

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

Với 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' }, 

Việc biên dịch hình ảnh thành ./[hash].png.

Bây giờ, tôi sử dụng react-router, vì vậy, tôi đang ở /help/targets/target và webpack đang cung cấp hình ảnh đường dẫn này /help/targets/[hash].png trong đó hàm băm là một tổng sha1. Tôi thích nếu nó cho nó đường dẫn /[hash].png. Chỉ cần

Làm cách nào để làm cho webpack hiểu rằng đối với tệp js này, đường dẫn tệp đến hình ảnh tương đối giống như trong trình duyệt?

+1

Bạn có thực sự phải sử dụng 'require()' bên trong thuộc tính 'src' của thẻ hình ảnh không? Trông nó có lạ không? – Green

+1

Có, hoặc bạn có thể chia thẻ ' Henrik

Trả lời

19

Bí quyết là để cung cấp cho webpack một config-gợi ý về những gì để căn đường dẫn của nó đối với:

Sử dụng:

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

Để nói webpack không phải là tương đối.

+2

chúc lành cho bạn. Cảm ơn – denvaar

+0

@denvaar cảm ơn bạn :) – Henrik

Các vấn đề liên quan