我正在制作一个带有Webpack设置的React,并且正在努力做一些似乎应该是一项简单的任务。我希望webpack包含图像,并尽量减少它们,就像我吞咽一样,但我无法弄明白。我只是希望能够像我这样在我的CSS中链接图像:
/* ./src/img/background.jpg */
body { background: url('./img/background.jpg'); }
我在src文件夹中包含了所有css / js / img文件夹。 Webpack输出到dist文件夹,但我无法弄清楚如何在那里获取图像。
这是我的网站设置:
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
}
};
答案 0 :(得分:55)
我遇到了类似的问题,发现您可以使用url-loader
来解析CSS中的requests
语句,就像其他任何需要或导入语句一样。
安装它:
"url()"
它将安装可以将已解析路径转换为BASE64字符串的加载程序。
在你的webpack配置文件中,在加载器中使用url-loader
npm install url-loader --save-dev
还要确保正确指定公共路径以及要加载的图像路径。
答案 1 :(得分:0)
使用背景图像:scss文件中的url('./ img / background.jpg')对我有用,没有url-loader。仅有用于.png | .jpg | ...等的文件加载器。