在我们的应用程序 (https://apps.facebook.com/testedenivel) 中,我们在 https 链接中明确引用页面 css,如下所示:
<link rel="stylesheet" href="https://d2asm4nez8zghw.cloudfront.net/content/app-teste-de-nivel.css?v=0.96.02" type="text/css" media="screen">
但奇怪的是,Facebook 将此 css 文件预加载为 HTTP 链接。之前的某个时候,我们使用了这个 HTTP url,但后来我们将其更改为 HTTPS,现在看来 Facebook 使用的是该 url 的以前的缓存版本:
<script type="text/javascript">
new Image().src = "http:\/\/www.talkfast.com.br\/content\/app-teste-de-nivel.css";
</script>
问题是,当用户通过安全浏览进入我们的应用程序时,HTTP 链接预加载导致浏览器警告我们的用户即将加载一些不安全的内容。我们想知道如何告诉 Facebook 删除这个预加载脚本,或者至少使用我们当前的 HTTPS url,如下所示:
<script type="text/javascript">
new Image().src = "https://d2asm4nez8zghw.cloudfront.net/content/app-teste-de-nivel.css?v=0.96.02";
</script>
网络上似乎缺乏关于此问题的引用资料,因此我们将不胜感激。
最佳答案
我没有在 facebook 应用程序中测试这个解决方案,但你可以在 wild web 上使用它
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js"></script>
作为证据:) http://paulirish.com/2010/the-protocol-relative-url/
有了这个所有资源都加载了页面协议(protocol),所以用户看不到关于页面上不安全元素的确认。
只需使用 Heroku 创建测试应用程序,我的 chromium 不会对框架内的 https 资源生气,所以问题取决于浏览器。
关于css - 当我的页面引用在 HTTPS 中时,为什么 Facebook 会在 HTTP 中为我的应用程序的 css 插入预加载脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11197263/