收藏
评论

为什么图片链接可正常访问但image组件加载不出来图片?官方

因为 image 控件的图片拉取本质上是 web 上的 backgroundImage,很多时候是由于图片不规范(content-type / length / 是否302跳转等 )导致拉取不成功,最终表现为加载不出图片。关于这一块我们在持续优化中

507861浏览
最后一次编辑于  2021-12-17
知识库内容非实时更新,可能已过期、失效或不适用于当前情形,请谨慎参考
收藏
反馈

58 个评论

  • 老程
    老程
    2020-02-26

    要是没有微信多好。太TM痛苦了,比病毒痛苦多了

    2020-02-26
    赞同 92
    回复 13
    • 三 爷
      三 爷
      2020-02-29
      垃圾写法 全是问题
      2020-02-29
      13
      回复
    • lanlan滴七月
      lanlan滴七月
      2020-05-18
      +1
      2020-05-18
      4
      回复
    • Wolf Pack
      Wolf Pack
      2020-07-14
      不能赞同更多了
      2020-07-14
      3
      回复
    • 只遇人间
      只遇人间
      2020-07-15
      真的垃圾 全是问题 也不解决 吐了
      2020-07-15
      2
      回复
    • 多喝热水คิดถึง
      多喝热水คิดถึง
      2020-09-13
      302问题不解决了吗,已经一年了!!
      2020-09-13
      4
      回复
    查看更多(8)
  • Wolf Pack
    Wolf Pack
    2020-07-14

    如果图片服务器设置了“referer”请求头白名单,来控制防止盗链,那么可以尝试一下流程:

    微信文档,明确指出“网络请求的 referer 格式固定为 https://servicewechat.com/{appid}/{version}/page-frame.html,其中 {appid} 为小程序的 appid”(https://developers.weixin.qq.com/miniprogram/dev/framework/plugin/development.html#%E5%85%B6%E4%BB%96%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9),而一般使用“referer”进行防盗链。

    而我们的图片服务器设置的referer白名单为“https://servicewechat.com/wxcabcdefgh123456/*”,但是微信小程序iOS版,在【刚刚启动小程序】时,image标签加载网络图片的请求,请求头“referer”却是“https://servicewechat.com/preload/page-frame.html”,不符合referer白名单规则,所以被拒绝,服务器返回的是403状态码,但是微信小程序错误日志却是404 Not Found(又是一个坑)。

    把我们的图片服务器,防盗链设置referer白名单为改为“https://servicewechat.com/*”则问题解决了,就是不要加“{appid}”这部分路径。






    2020-07-14
    赞同 14
    回复 8
    • LuckyGO
      LuckyGO
      2021-03-17
      大佬NB
      2021-03-17
      回复
    • 禁花语
      禁花语
      2021-07-29
      大佬牛逼,我这边也是这个问题,真的很痛苦,但是不加appid感觉一点安全性都没有
      2021-07-29
      回复
    • 脆骨
      脆骨
      2021-11-18
      我小程序图片是上传到服务器,用PC跟小程序开发工具都可以加载出图片,但是就是在体验版本的时候,图片无法加载,如果设置了防盗链,是白名单以外的都加载不了图片吗
      2021-11-18
      回复
    • 小情绪,
      小情绪,
      2022-11-14
      如果不加上小程序appid的话,白名单只配置https://servicewechat.com/*,岂不是没有起到防盗链的效果呢,在所有小程序都可访问该图片?
      如果不想配置这个白名单,大佬有其他的解决方法吗?
      2022-11-14
      回复
    • 从君华
      从君华
      2023-07-29
      通配符 === 不设置白名单
      2023-07-29
      回复
    查看更多(3)
  • 白筱汐
    白筱汐
    2020-03-30

    当初刚刚出来的时候,canvas的文档跟html5的canvas不一样。好的我看了半天,现在又改成web html5 的canvas.

    别人w3c出来多少年了,还需要你微信小程序去验证它的正确性?动不动改文档,结果还是抄袭web,给前端开发者制作麻烦


    2020-03-30
    赞同 6
    回复 3
    • Lewis
      Lewis
      2023-01-09
      是啊就照搬过来不就好了吗,非要自己改改,本来就是 h5 啊
      2023-01-09
      回复
    • 蜡笔没小新
      蜡笔没小新
      发表于移动端
      01-14回复Lewis
      不这么搞怎么提现工作量
      01-14
      回复
    • Lewis
      Lewis
      01-15回复蜡笔没小新
      对,只会整些没用的
      01-15
      回复
  • Hune
    Hune
    2019-09-23

    现在生产上频繁出现这种问题了。 在网络差的时候,图片会加载不出来,导致切换到正常网络后,图片会一直出不来,一般情况下,用image组件的binderror处理,重新赋值可以解决这种问题,但是,有的手机,比如 Iphone X, Iphone XR, 只会在执行当前页面的binderror方法,这种问题只能说在特定机型上无解了,希望官方尽快出解决方案,修复这个问题

    2019-09-23
    赞同 6
    回复 5
    • 2019-10-10
      我的大多数时候不能正常显示,偶尔能显示,数据可以在网页中显示图片,估计这个image组件兼容性有问题,有待改进,等待官方回复
      2019-10-10
      回复
    • lanlan滴七月
      lanlan滴七月
      2020-05-18
      请问用binderror重新赋值时,是用替代图片还是原图地址,我发现直接setData原图地址,由于前后两个src都一样,它就不再渲染了,导致原来显示啥样就还是啥样
      2020-05-18
      1
      回复
    • 杰瑞
      杰瑞
      2021-07-06回复lanlan滴七月
      可以使用图片url加时间戳参数的方式
      2021-07-06
      1
      回复
    • 白水
      白水
      2021-09-10
      这个问题解决了么?
      2021-09-10
      回复
    • 蜡笔没小新
      蜡笔没小新
      07-18
      我现在也遇到这个情况了,我用的taro的image,然后error没有走日志错误
      07-18
      回复
  • 轻度
    轻度
    2019-12-07

    官方的webp和lazy-load都加了,还是会出现图片加载失败后不再重新加载的问题,也就是图片有地址,但是显示不出来。

    2019-12-07
    赞同 5
    回复
  • 阿白
    阿白
    2021-10-21

    可以看一下自己SSL证书有没有过期,导致https不能正常使用

    2021-10-21
    赞同 4
    回复
  • 南风也微凉
    南风也微凉
    2020-03-05

    麻烦问一下 轮播和项目图片在开发工具上能显示 但是在手机预览调试上就没有显示但是图片位置的链接跳转还是能, 在手机预览时跳转后的titel 会发生错乱 首页的会显示跳转页的 跳转页的显示首页titel,在开发者工具上一切正常。是个嘛问题嗷?能知道一下么?

    2020-03-05
    赞同 3
    回复 2
    • AshinsLab
      AshinsLab
      2020-05-01
      我之前挂了梯子也会有这样的情况,关了梯子就好了,看看你是不是挂了梯子
      2020-05-01
      回复
    • YF
      YF
      2021-05-01
      遇到同样的问题了 请问是咋解决了呢 本地和https图片路径都无法显示 但是bindload,binderror都正常
      2021-05-01
      回复
  • 👀JH
    👀JH
    2020-01-06

    这个解决了吗?之前好好的,现在组件基本不显示,点击preview就可以显示。

    2020-01-06
    赞同 3
    回复 3
    • 商陆
      商陆
      2022-05-11
      解决了吗
      2022-05-11
      回复
    • 独揽月下萤火
      独揽月下萤火
      04-01
      说出来你可能不信,20240401问题依旧,不是所有机型如此,只是部分机型这样
      04-01
      回复
    • jeff
      jeff
      04-07回复独揽月下萤火
      能列一下机型,系统版本,微信版本?我们图片有302,2024实测又好像正常。想搞清楚影响范围,决定是否继续302.谢谢
      04-07
      回复
  • 前
    2023-03-29

    遇到了类似的情况,同样一张图片,使用base64图片地址无法显示,改为URL地址显示正常。

    官方能不能彻底解决这个问题啊?都2023年了。

    2023-03-29
    赞同 2
    回复
  • 杨杨得亿
    杨杨得亿
    01-12

    都已经2024年了,还能碰到bindload小概率性不回调的情况

    01-12
    赞同 1
    回复 1
    • 洗了蒜了
      洗了蒜了
      05-11
      要是没有微信就好了
      05-11
      1
      回复

正在加载...

登录 后发表内容