开发者社区> 问答> 正文

为什么手机端访问 CDN URL ,携带了图片处理,发现访问 CDN 变成空白图片 ?

为什么手机端访问 CDN URL ,携带了图片处理,发现访问 CDN 变成空白图片,刷新后又能再次出来,浏览器可以正常显示

展开
收起
1358896759097293 2021-03-10 20:17:51 1342 0
1 条回答
写回答
取消 提交回答
  • 45271990@qq.com

    排查: 既然浏览器都可以访问,只有手机端不行,问题已经可以判断出 OSS 是正常 的,不然浏览器肯定不会显示正常。 1) 出现问题后,先剥离 CDN 直接访问 OSS 看下图片是否能否访问,如果 OSS 访问都出现异常,不可能 CDN 会正常,那为什么 CDN 刷新一下就可 以显示了呢? 因为 CDN 有缓存,一般这种情况,用户很可能开启了 ”参 数过滤“ 功能,将 ? 后边的参数都忽略掉了,这样 CDN 就会命中客户所 有的请求。表面上看就是访问 CDN 正常,访问 OSS 异常。第 1 步排查完 后,基本可以定位是哪里的问题,如果 OSS 一直都能访问,而 CDN 访问 异常,说明 CDN 节点网络导致加载失败,或者 CDN 缓存了错误内容,如 果是 OSS 始终显示不出来,证明图片本身就存在问题了,再向下排查。 2) 浏览器可以访问了,说明图片本身没有坏,也没有冻结,唯一可能就是图片 本身的编码不被手机浏览器支持。通过 ffmpeg 可以看到用户的原图是 webp 格式的。

    Input #0, png_pipe, from 'http://oss-cn-shanghai.aliyuncs.
    com/201811/198c7cf3ac6a4d259ae810e205e2b4bf.jpg?/x-oss-process=style/fm_
    webp_720p':
     Duration: N/A, bitrate: N/A
     Stream #0:0: Video: weep, rgb24(pc), 1080x1920 [SAR 5906:5906 DAR 9:16], 
    25 tbr, 25 tbn, 25 tbc
     2.58 M-V: -0.000 fd= 0 aq= 0KB vq= 0KB sq= 0B f=0/0
    
    

    结论,经过上述排查知道了,图片的格式是 webp ,特点是 ios 默认不支持, android 支持,因为 webp 是 chrome 推出的一个新的图片编码方式。ios 需要自 己编译 webp 的支持库才可以。最后参考 https://blog.csdn.net/wsyx768/article/ details/78986918

    2021-03-12 23:06:57
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Tangram 立即下载
360手机卫士 插件化漫谈 立即下载
手机京东Crash自动分析处理系统 立即下载