2016-02-12 16 views
22

WebpackセットアップでReactを作成していますが、単純な作業でなければならないようなことをするのに苦労しています。私はwebpackに画像を含めることを欲しがっています。私は貪欲で私のようにそれらを最小限に抑えますが、私はそれを理解することはできません。私はちょうどそのように私のCSSで画像をリンクできるようにしたい:WebpackでCSSを使用する方法

/* ./src/img/background.jpg */ 

body { background: url('./img/background.jpg'); } 

私はsrcフォルダ内の私のCSS/JS/IMGフォルダのすべてを持っています。 Webpackはdistフォルダに出力しますが、そこに画像を取得する方法はわかりません。ここで

が私のWebPACKのセットアップです:

var path = require('path'); 
var webpack = require('webpack'); 
var HtmlWebpackPlugin = require('html-webpack-plugin'); 

module.exports = { 
    devtool: 'cheap-eval-source-map', 
    entry: [ 
    'webpack-dev-server/client?http://localhost:8080', 
    'webpack/hot/dev-server', 
    './src/index.js' 
    ], 
    output: { 
    path: path.join(__dirname, 'dist'), 
    // publicPath: './dist', 
    filename: 'bundle.js' 
    }, 
    plugins: [ 
    new webpack.HotModuleReplacementPlugin(), 
    new HtmlWebpackPlugin({ 
    template: './src/index.html' 
    }) 
    ], 
    module: { 
    loaders: [{ 
    exclude: /node_modules/, 
    test: /\.js?$/, 
    loader: 'babel' 
    }, { 
    test: /\.scss$/, 
    loader: 'style!css!sass' 
    }, { 
    test: /\.(png|jpg)$/, 
    loader: 'file-loader' 
    }] 
}, 

devServer: { 
    historyApiFallback: true, 
    contentBase: './dist', 
    hot: true 
    } 
}; 

答えて

29

私は同様の問題で立ち往生し、他が必要か、importステートメントとして、あなたのCSSで"url()"文を解決するためにurl-loaderを使用できることが判明しました。

それをインストールするには、次の

npm install url-loader --save-dev

それはBASE64文字列として解決のパスに変換することができますローダーをインストールします。ローダーであなたのWebPACKの設定ファイルを使用し、URLローダーで

{ 
    test: /\.(png|jpg)$/, 
    loader: 'url-loader' 
} 

はまた、あなたが正しくあなたの公開パスを指定してロードしようとしている画像のパスされていることを確認してください。

+0

@ user3737841あなたの問題を解決しますか? – WitVault

+0

まあ私のwebpack-devサーバは/ distから提供され、私の画像は/ srcにありますので、私の.cssファイルの画像をどのように参照するのか知っていますか?画像は私のbundle.jsでロールアップされるはずですか?/distフォルダがwebpack-dev-serverから提供される仮想のものに過ぎないので、/ distに移動する方法がわかりません。 – user3737841

+2

@ user3737841スタイルシートで画像を 'require'する必要があります。たとえば、 'background-image:url( '../ assets/img/logo-dark.png')'などです。正しいパスを取得するために調整/調整する必要があります。 –

関連する問題