webpack 使用file-loader 和 url-loader ,打包后图片不能查看且网页图片路径不正确

本文介绍了在webpack5中使用file-loader和url-loader打包图片后,图片无法正常显示的问题。作者分析了问题原因,指出webpack 5已用资源模块替代这两个loader,并提供了相应的配置解决方案。此外,还提到了降级到webpack 4作为备选方案,但可能会影响其他功能。

目录 

文件结构

解决方法


文件结构

我在页面设置了两个div 来展示背景图片,图片由src/css 里面的less 文件引入

 在安装好file-loader 和 url-loader 后如下配置:

 打包后文件结构如下:

 页面:

 页面图片路径取的是dist 下面打包的文件,在webstorm 打开后不能解析:

 打开dist/images 下的图片能够展示:

解决方法

    (1)  查看当前项目package.json 文件,找到devDependencies 下的webpack 版本

 如果是webpack 5 的话可以使用如下配置:

{
  test: /\.(png|jpg|gif)$/,
  type: 'asset',    // 实现判断图片大小转化base64
  parser: {
    dataUrlCondition: { // 判断图片是否转化为base64
      maxSize: 8 * 1024 // 8kb
    }
  },
  generator: {
    filename: 'images/[hash:5][ext][query]'  // 文件输出路径及命名
  } 
}    

打包后文件结构

 

页面:

 

 简单说一下原因:webpack 5 将file-loader 和 url-loader 功能通过资源模块(asset module) 替代了

这里贴个官方链接,想了解的话可以去看看 https://webpack.docschina.org/guides/asset-modules/

(2)webpack 降级为4(没有尝试,如果不能请告知我)

         注意:降级可能会导致部分功能不能实现(loader等),这些也可能要降级

新手上路,求大佬多多建议!!!

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值