小程序平台安全机制 + 资源域名白名单限制

423 阅读1分钟

这是一个 小程序平台安全机制 + 资源域名白名单限制 的问题,下面是详细解释:


🧩 你遇到的问题:

  • 图片 A: http://assets.51downapp.cn/74dff899.png

    • 支付宝小程序 能展示
    • 微信小程序 无法展示 ❌
  • 图片 B: https://m.hellobike.com/helloyun3/26704/7yqxv8zz_gomore.png

    • 支付宝 + 微信 小程序都可以正常显示 ✅✅

🎯 根本原因:微信小程序要求资源走 HTTPS + 配置白名单域名

✅ 微信小程序图片加载规则:

微信小程序加载网络图片必须满足:

  1. 图片地址必须是 https:// 协议
  2. 图片所在的域名,必须配置在小程序后台的“downloadFile 合法域名”白名单中

否则,图片会加载失败,控制台也会提示:

downloadFile:fail url not in domain list

✅ 支付宝小程序相对宽松一些:

  • 允许 httphttps
  • 部分场景下不校验域名白名单(但建议还是配置)

✅ 你的情况解释:

链接协议是否在微信域名白名单能否显示
http://assets.51downapp.cn/...❌ HTTP❌ 未配置❌ 无法显示
https://m.hellobike.com/...✅ HTTPS✅ 已在小程序配置中✅ 显示成功

🛠 如何解决:

✅ 方法一:将图片换成 https 协议的合法域名

如你后续图片都走 https://m.hellobike.com/https://static.hellobike.com/ 这类统一 CDN 域名,就能避免问题。

✅ 方法二:在微信小程序后台配置该图片域名

进入小程序后台 → 开发 → 开发设置:

  • 找到「downloadFile 合法域名」
  • 添加 assets.51downapp.cn(必须是 HTTPS)

注意:微信审核时域名必须备案,否则不能通过。


✅ 推荐实践

  • 所有图片地址统一使用 CDN,统一 https:// 协议。
  • 配置所有资源域名至小程序后台白名单。
  • 避免使用不受控的第三方 HTTP 域名,防止被拦截。