解决webpack5打包html中图片后图片无法显示问题

错误代码如下:

	//loader的配置
	module: {
		rules: [{
				test: /\.(png|svg|jpg|jpeg|gif)$/,
				loader: 'url-loader',
			},
			{ test: /\.html$/,loader: 'html-loader' }
		]
	},

此时打包好的html文件中的img标签路径(为错误路径):

在这里插入图片描述

解决方案

------在尚硅谷的webpack5视频教程中有讲到,因为url-loader默认使用es6模块化进行解析,而html-loader使用的是commonjs进行解析,所以url-loader解析时会出错(见上面错误路径图片)。

方案一代码:

			{
				test: /\.(png|svg|jpg|jpeg|gif)$/,
				loader: 'url-loader',
				//禁用掉es模块
				options: { esModule: false }
			},
			//注意!!!!!!!!!!!!!!!!!!!!!!
			//此处使用webpack5支持的 "html-withimg-loader",
			//如使用 "html-loader",就算禁用了es模块还是会没用
			{ test: /\.html$/, loader: 'html-withimg-loader' }

成功后图片,可与上面的错误路径图片进行对比。

在这里插入图片描述

方案二代码:
使用webpack官方文档提供的方法,官方方法位置:指南—>管理资源—>加载images图像。

			{
				test: /\.(png|svg|jpg|jpeg|gif)$/i,
				type: 'asset/resource',
			},

最后欢迎留言讨论v( •̀ ω •́ )✧。

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值