收藏
回答

图片加载不出来

框架类型 问题类型 操作系统 工具版本
小程序 Bug Windows

- 当前 Bug 的表现(可附上截图)

图片显示不出来

- 预期表现


- 复现路径


- 提供一个最简复现 Demo


回答关注问题邀请回答
收藏

3 个回答

  • 小程序商城定制开发2600元全包
    小程序商城定制开发2600元全包
    2021-07-12

    太复杂了

    2021-07-12
    有用
    回复
  • 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}”这部分路径。

    如果你的图片服务是,阿里云CDN+阿里云OSS,那么由于CDN的referer白名单只支持配置到域名(如:“servicewechat.com”),而阿里云OSS的referer白名单支持路径级配置(如:“https://servicewechat.com/wxcabcdefgh123456/*”),所以图片在CDN预热后,或者同一个CDN节点有人访问过,则小程序的图片请求会加载成功,否则会被OSS的防盗链拦截(返回HTTP 403);

    所以,才会偶尔能加载,偶尔不能。





    2020-07-14
    有用
    回复
  • 祺爸💎
    祺爸💎
    2019-06-19

    404是服务端返回的,到服务端找原因

    2019-06-19
    有用
    回复 3
    • xcy
      xcy
      2019-06-19

      图片png后面跟个!225x300是什么意思呢

      2019-06-19
      回复
    • 祺爸💎
      祺爸💎
      2019-06-19回复xcy

      代码是你写的,你问我?

      2019-06-19
      回复
    • 侃侃而🇹 🇦 🇳  ᯤ²ᴳ
      侃侃而🇹 🇦 🇳 ᯤ²ᴳ
      2019-06-19回复xcy

      估计是图片预处理的东西。。。传入尺寸就返回这个尺寸的图片

      2019-06-19
      回复
登录 后发表内容