目录卡片图从 jpg 换成 webp,Chrome 显示正常,Safari 14 上整块留白,控制台没有报错,右键另存下来是一个能打开的 webp 文件。第一次遇到会往复杂处想,其实漏掉的多是个小前提。

<picture>
  <source srcset="item.webp" type="image/webp">
  <img src="item.jpg" alt="商品图" width="400" height="400">
</picture>

页面直接输出了 webp 的 img src,没有用 picture 提供 jpg 回退。Safari 14 只在较新的系统版本才支持 webp,旧系统拿到不认识的格式就直接不渲染。这一点先确认清楚,后面就不用反复试。

「webp 兼容 Safari」相关的验证我通常做两遍,改完一次、隔天再看一次,确认不是临时生效。新版本先放一台机器上跑一天再全量,问题一般在这段时间暴露。

备份不是备了就行,恢复一次才算数,很多备份文件打开才发现是空的。接口问题先分清是没发出去、发出去了没收到,还是收到了处理失败。

偶发问题先统计频率,一小时几次和一天一次,查法完全不同。

具体做法是,用 picture 包一层,source 写 webp,img 的 src 留 jpg 兜底;source 的 type 必须写 image/webp,写错浏览器不会跳过这一项;在 Safari 14 和 Chrome 各看一次,重点看首屏前六张图。

改完照着核一遍,Safari 14 上目录图正常显示 jpg,Chrome 请求的是 webp,两边都不空白。

作者 9823189