19

我一直在尝试将我的网站从 divshot 迁移到 firebase,因为 firebase 已经接管了 divshot 并将其关闭。

我的是一个简单的只读网站,不需要 https。它还包含指向不支持 https 的外部站点的链接。该网站在 divshot 上运行良好,但看起来 firebase 强制所有网站使用 https。不幸的是,这会导致我的站点引用的外部站点无法加载。错误是:

混合内容:“ https://mysite.firebaseapp.com/ ”页面通过 HTTPS 加载,但请求了不安全的资源“ http://www.externalsite.com/ ”。此请求已被阻止;内容必须通过 HTTPS 提供。

我试图删除 http: 所以外部站点只是 //www.externalsite.com/,但这会导致证书错误。我无法将其更改为 https,因为此外部站点不支持它。

有没有办法解决这个问题?

4

1 回答 1

21

最简洁的答案是不。这完全是设计使然。在 https 站点上允许 http 是一个安全漏洞。因此它被阻止了。

然而,

  • 解决方案 1:查找资源的 https 版本在您的情况下这可能是不可能的。
  • 解决方案 2:将资源转换为 https可以使用 https 自己托管文件或资源。这可能需要你复制一个文件或其他东西,我小心地说,不要盗版你不应该的东西。
  • 解决方案 3:重定向这可能是最复杂的解决方案,但如果您尝试访问某些服务,那么您可以创建自己的服务来重定向它。您在 firebase 上,这意味着您可能会破解一些云功能来发出 http 请求(如何在 Cloud Functions for Firebase 中发出 HTTP 请求?
  • 解决方案 4:不要使用 Firebase不想执行上述任何操作,并且您不能离开 http 调用?您可能只是转储 firebase 并转移到其他一些托管服务。

希望这对您有所帮助,它可能不是您要寻找的答案,但它可能会为您指明正确的方向。

于 2017-09-13T18:18:24.230 回答