React アプリに Webpack を使用しています。
Webpack構成に「File-loader」と「Url-loader」をインストールしました。
ただし、画像をコンポーネントにリンクする方法がわかりません。画像の「src」を「Data.js」ファイルに保持しており、そこから画像のデータを反応コンポーネントに渡します。
私のwebpack.config.js:
...
const PATHS = {
app : path.join( __dirname, "app" ),
build : path.join( __dirname, "build" )
};
const common = {
entry : {
app : PATHS.app
},
output : {
path : PATHS.build,
filename : "bundle.js"
},
module : {
preLoaders : [
...
loaders : [
{
test : /\.css$/,
loaders : [ "style", "css" ],
include : PATHS.app
},
{
test : /\.jsx?$/,
loader : "babel",
query : {
cacheDirectory : true,
presets : [ "react", "es2015" ]
},
include : PATHS.app
},
{
test : /\.(jpg|png)$/,
loader : "file-loader?name=[name].[ext]",
include : PATHS.app
}
...
私の反応プレゼンテーションコンポーネントであるImは、単にrequire
画像を取得するために使用しています:
const PreviewTemImgParent = ({ data }) => {
let img = require( data.get( "src" ));
return(
<div className = "card previewImgParent">
<img
src = { img }
...
Data.js ファイルには、各画像の絶対パス (メイン アプリ フォルダー) があります (ここで間違っている可能性があります)。
export const previewTemImgData = Map({
body : List.of(
Map({ // using immutable.js
src : "app/css/asset/template/png/body/GatheredAtEmpireLine.png",
alt : "image",
className : "flipParent",
...
その価値のためのグローバル ディレクトリ イメージ:
どこで間違いを犯しているのか、どうすれば解決できるのだろうか?
編集: 読んだ後、webpack には画像の相対位置の参照が必要であることがわかりました。そのため、webpack.config.js を次のように修正しました。
...
output : {
path : PATHS.build,
publicPath : "/",
filename : "bundle.js"
}
...
ただし、それでは問題は解決しません。ガイダンスをいただければ幸いです。