gpt4 book ai didi

Webpack 没有加载背景图片

转载 作者:行者123 更新时间:2023-12-01 13:42:26 24 4
gpt4 key购买 nike

我正在尝试加载图像:

background: transparent url("../img/select-icon.png") no-repeat center right 8px;

在我的 style.scss 上它不工作

这是我的 webpack.config:

function _path(p) {
return path.join(__dirname, p);
}

module.exports = {

context: __dirname,
entry: [
'./assets/js/index'
],

output: {
path: path.resolve('./assets/bundles/'),
filename: '[name].js'
},

devtool: 'inline-eval-cheap-source-map',

plugins: [
new BundleTracker({filename: './webpack-stats.json'}),
new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery',
'window.jQuery': 'jquery'
}),
new HappyPack({
id: 'jsx',
threads: 4,
loaders: ["babel-loader"]
})

],

module: {
loaders: [
{
test: /\.css$/,
include: path.resolve(__dirname, './assets/css/'),
loader: "style-loader!css-loader"
},

{
test: /\.scss$/,
include: path.resolve(__dirname, './assets/css/'),
loader: "style-loader!css-loader!sass-loader"
},

{
test: /\.jsx?$/,
include: path.resolve(__dirname, './assets/js/'),
exclude: /node_modules/,
loaders: ["happypack/loader?id=jsx"]
},
{
test: /\.png$/,
loader: 'file-loader'
}
]
},

resolve: {
modulesDirectories: ['node_modules'],
extensions: ['', '.js', '.jsx'],
alias: {
'inputmask' : _path('node_modules/jquery-mask-plugin/dist/jquery.mask'),
},
}
}

我正在使用文件加载器,但浏览器呈现的 url 与图像的 url 不匹配。

我认为我没有使用源 map :https://github.com/webpack/style-loader/issues/55

有人能帮忙吗?

最佳答案

要将 url('...') 解析为文件输出路径,您需要在 css-loader 之前使用 resolve-url-loader

在您的 webpack.config.js 中,您需要进行以下更改:

//...
module: {
loaders: [
{
test: /\.css$/,
include: path.resolve(__dirname, './assets/css/'),
loader: "style-loader!css-loader!resolve-url-loader"
},

{
test: /\.scss$/,
include: path.resolve(__dirname, './assets/css/'),
loader: "style-loader!css-loader!resolve-url-loader!sass-loader"
},
//...
]
}
//...

作为可选配置,您可以指定 file-loader 使用的文件名模板。因此,例如,您可以使用 /img/select-icon.png,而不是 96ab4c4434475d0d‌ 23b82bcfc87be595.png

在您的 webpack.config.js 中,正在使用 file-loader 的默认选项。这意味着输出文件名使用模板 [id].[ext]。作为 [id] block ID 和 [ext] 文件的扩展名。

要指定输出文件名模板,您需要将 name 参数传递给加载程序的查询。

到目前为止,require('../img/select-icon.png') 应该返回 '/img/select-icon.png'resolve-url-loader 将使用此值。

//...
module: {
loaders: [
//...
{
test: /\.png$/,
loader: 'file-loader',
query: {
name: 'img/[name].[ext]'
}
},
//...
]
}
//...

关于Webpack 没有加载背景图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38834508/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com