小程序
小游戏
企业微信
微信支付
扫描小程序码分享
- 当前 Bug 的表现(可附上截图)
图片显示不出来
- 预期表现
- 复现路径
- 提供一个最简复现 Demo
3 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
微信开发者工具上传图片没有报错,后端也显示成功为啥微信开发者工具上传的图片加载不出来只有设置的图片大小的框框,哭了
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
如果图片服务器设置了“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);
所以,才会偶尔能加载,偶尔不能。
404是服务端返回的,到服务端找原因
图片png后面跟个!225x300是什么意思呢
代码是你写的,你问我?
估计是图片预处理的东西。。。传入尺寸就返回这个尺寸的图片
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
微信开发者工具上传图片没有报错,后端也显示成功为啥微信开发者工具上传的图片加载不出来只有设置的图片大小的框框,哭了
如果图片服务器设置了“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);
所以,才会偶尔能加载,偶尔不能。
404是服务端返回的,到服务端找原因
图片png后面跟个!225x300是什么意思呢
代码是你写的,你问我?
估计是图片预处理的东西。。。传入尺寸就返回这个尺寸的图片