webpack如何设置html中img路径和css中背景图片路径区别开

在使用webpack过程中,打包后发现html中img路径是:

<img src="img/01.jpg" alt="标题图片" /> 

但是在main.css文件中的background-image

.test{
  width: 200px;
  height: 200px;
  background: url("img/01.jpg") center center no-repeat;
}

但是,实际目录确实这样排列的

dist
   img
      01.jpg
   style
      main.css
   index.html

所以看来,webpack打包出来的图片路径是一致,这样就导致css样式中的背景图片访问不出来了。

webpack.config.js

{
	test: /\.(jpe?g|png|gif)$/i, //图片文件
	use: [
	  {
		loader: 'url-loader',
		//include: [path.resolve(__dirname, "../src/static")],
		options: {
		  esModule: false,
		  limit: 10240,
		  name: 'img/[name].[hash:8].[ext]',
		  //outputPath: 'img/', //导出之后的路径
		  //publicPath: '../'   //公共的路径
		}
	  }
	]
},

上面代码控制的是html中的img路径和css中的背景图片路径,如果想要区分开这两种路径。
需要在打包导出css的loader配置中配置好背景图片的路径,
这里,我用到的将less,sass,css文件打包成css文件的插件是:

mini-css-extract-plugin

既然是在这个插件中转换才将css集中在一起,然后再导出到一个main.css文件中,所以,背景图片的路径也需要在这个插件中的options选项中配置。
代码:

{
	test:/\.less$/,
	use:[
	{
		loader:MiniCssExtractPlugin.loader,
	    //在这里设置publicPath的路径就是background-img的路径 
		options:{
			publicPath: '../'
		}
	},
	'css-loader','less-loader']
	}

例图:
在这里插入图片描述
以此结束!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值