收藏
回答

图片加载不出来

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

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

图片显示不出来

- 预期表现


- 复现路径


- 提供一个最简复现 Demo


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

3 个回答

  • ᰔᩚ婉颜
    ᰔᩚ婉颜
    2022-12-10

    微信开发者工具上传图片没有报错,后端也显示成功为啥微信开发者工具上传的图片加载不出来只有设置的图片大小的框框,哭了



    2022-12-10
    有用
    回复
  • 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
      回复
登录 后发表内容