【发布时间】:2015-04-21 11:57:27
【问题描述】:
我收到此错误:
Mixed Content: The page at 'https://theculprit.com/url' was loaded over HTTPS, but requested an insecure font 'http://fonts.gstatic.com/s/opensans/v10/DXI1ORHCpsQm3Vp6mXoaTYnF5uFdDttMLvmWuJdhhgs.ttf'. This request has been blocked; the content must be served over HTTPS.
当我查看源代码以查找通过 HTTP 而不是 HTTPS 导入字体的位置时,与字体导入有关的唯一行是:
@import url('//fonts.googleapis.com/css?family=Open+Sans:400,700,300,600,800');
最初我虽然HTTPS assets loading over HTTP 可能是我的错误,但字体已经使用源协议导入。这只发生在代码被缩小后。
我对字体/css/less 不是很熟悉,所以我完全迷路了。如果有任何其他信息可以提供帮助,请告诉我。
【问题讨论】:
-
您确定您的导入是以 https 形式出现的吗?导致问题的 URL 来自您正在导入的 CSS,而不是 JS 行。 fonts.googleapis.com/css?family=Open+Sans:400,700,300,600,800
-
@MatthewGreen 我假设使用 '//myurl' 开始导入会自动使用调用源的协议发出请求。这是不正确的吗?我知道不是 JS 的行导致错误,我只是将其列为另一位信息。
-
它应该这样工作。您可以看到,当您点击 font.googleapis URL 时,该协议会根据您使用的内容更改该 CSS 中的链接。但是,这显然在这种情况下不起作用。我会尝试使用协议来查看错误是否消失,然后查看您的 CSS 导入是否实际上使用了错误的协议。
-
@MatthewGreen 因此,当我将该导入行更改为使用 https 协议时,我看到 gstatic url 从 http 更改为 https。我现在的问题是,如果我直接从浏览器中点击 fonts.googleapis 链接,我在网络活动中根本看不到 gstatic URL - 什么都没有下载。在实际站点上运行的字体导入是 fonts.gstatic 调用的来源吗?
-
它应该只在需要该资源时下载一些东西。因此,您必须在您的 CSS 中使用它,并且您的计算机上还没有该字体的本地副本以供下载。因此,仅仅在浏览器中点击 URL 并不是一个很好的测试。
标签: css angularjs fonts less minify