img图片如何用css更换路径,Webpack 打包怎么修改 css img 路径?

现在的目录结构如下

|--src---img-a.png

|-scss-b.scss

|-index.html

在 b.scss 中

#b {

backgroun-image: url( ../img/a.png )

}

在 index.html 中

a.png

配置 webpack

module.exports = {

mode: 'production',

entry: './src/index.js',

output: {

path: path.resolve( __dirname, 'dist' ),

filename: '[name].bundle.js',

publicPath: './',

},

module: {

rules: [

{

test: /\.scss$/,

use: [

MiniCssExtractPlugin.loader,

"css-loader",

"sass-loader"],

},

{

test: /\.png$/,

use: [

{ loader: 'file-loader', options: {

name: 'img/[name].[ext]',

} }

]

},

{

test: /\.html$/,

use: {

loader: 'html-loader',

options: {

attrs: ['img:src']

}

}

}

]

},

plugins: [

new HtmlWebpackPlugin({

template: './src/html/index.html',

} ),

new MiniCssExtractPlugin({

filename: "css/[name].css",

chunkFilename: "css/[id].css"

}),

],

};

发现 html 打包出来的 img 路径是 ./img/a.png 能被成功访问,但是 提取出来的 css 访问的路径也是 ./img/a.png 也就不能访问图片了

请问应该如何修改同时让 index.html 以及 css 能被正常访问同一个图片

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当使用webpack5时,可能会出现在.css文件中的图片路径无法找到的问题。这是因为在webpack5中,引入图片的方式发生了变化。 在之前的版本中,我们可以直接在.css文件中使用相对路径来引入图片。但是在webpack5中,除非使用绝对路径,否则默认情况下无法正确解析路径。 解决这个问题的方法有两种: 1. 使用绝对路径:在.css文件中使用绝对路径来引入图片,可以确保路径的正确解析。例如,如果图片位于项目根目录下的img文件夹中,可以这样引入:background-image: url(/img/example.jpg); 2. 配置webpack的文件解析规则:在webpack的配置文件中,可以通过配置resolve.alias来解决路径问题。例如,如果图片位于项目根目录下的img文件夹中,可以这样配置resolve.alias: ```javascript module.exports = { //... resolve: { alias: { '@img': path.resolve(__dirname, 'img') } } }; ``` 然后在.css文件中使用别名来引入图片:background-image: url('@img/example.jpg'); 无论使用哪种方法,都需要确保图片路径的正确性。此外,还需要注意webpack5使用的是asset模块,需要在配置文件中正确设置相关的loader,以便正确处理图片文件。 总之,针对webpack5中.css样式图片路径找不到的问题,可以通过使用绝对路径或配置resolve.alias来解决。同时,确保正确配置相关的文件解析规则和loader,以便正确处理图片文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值