收藏
回答

微信小程序可否添加webp为后缀白名单文件?

在开发的过程中,为了削减代码包的大小,针对程序内使用的一些ui资源我都选择使用webp格式。然而在预览时,我发现小程序内无法加载出我附在代码包中的webp格式的相关资源。仔细检查了后,发现是因为小程序存在上传白名单,即使在project.config.json里强制配置对应资源上传也会因为白名单的存在而导致无法上传:

https://developers.weixin.qq.com/miniprogram/dev/framework/structure.html#%E5%85%81%E8%AE%B8%E4%B8%8A%E4%BC%A0%E7%9A%84%E6%96%87%E4%BB%B6

这也就造成了小程序在实机上ui无法使用webp的随包资源—— 哪怕在开发过程中可以使用webp进行相关开发,哪怕微信小程序的image已经支持webp文件进行加载了,这是一个荒谬的地方。

webp本身是很优秀的压缩格式,同样一张图片,若我将它转为png,它会增长将近三倍余的体积(一张6.59kb的webp转化后变成了21kb的png格式文件);同时它对透明性具有很好的支持,这是为具有同样优秀压缩比的jpg所不具备的。我想,在微信小程序诸如image之类的组件已经支持webp文件前提下,应当将webp也加入到微信小程序的后缀白名单中,可以预见到它能带来以下收益:

  • 大幅度减少小程序包资源包的负担,减轻小程序体积
  • 使得开发者能够更加大胆地把图片资源应用到小程序中,让小程序在“小”的基础更“美”
  • 减轻用户的网络开销(把更多图片资源放到小程序包中等价于减少用户通过网络加载图片 )

并且还是那句话:在微信小程序诸如image之类的组件已经支持webp文件前提下,不允许webp作为随包资源上传实在有点不合理了。

最后一次编辑于  2023-07-20
回答关注问题邀请回答
收藏

2 个回答

  • 李问道 Otter
    李问道 Otter
    2023-07-22

    找到了一个取巧且在实机上测试通过的办法:把webp命名为webp.png(即把文件后缀名更改为png)。这样资源能够随小程序包上传并被预览成功。

    但我还是希望微信官方能够将webp添加到后缀白名单中。

    需要注意的是:这一方法可能因为将来image组件的改动而失效。目前而言是可行的。

    2023-07-22
    有用 2
    回复
  • Larry
    Larry
    2023-07-21

    image组件好像只支持网络链接的webp文件

    2023-07-21
    有用
    回复 1
    • 李问道 Otter
      李问道 Otter
      2023-07-22
      并不是吧。经过我测试,wxfile:// 也支持。
      2023-07-22
      1
      回复
登录 后发表内容