19

我的网站与 Google webfonts 配合良好,直到用户点击网站的 SSL 部分。

那时,chrome 会抛出部分编码错误,而我的 cufon 菜单会丢失它的字距调整。

我在这个 css 中包含了我的 webfont:

@font-face {
src: local('Lusitana'), url(https://themes.googleusercontent.com/static/fonts/lusitana
/v1/tAIvAkRzqMJf8Y4fM1R7PXYhjbSpvc47ee6xR_80Hnw.woff) format('woff');
}

我的 js 控制台然后给了我这个错误:

[已阻止] https://domain.com/ecommerce.php上的页面运行来自http://fonts.googleapis.com/css?family=Lusitana:regular,700&subset=latin的不安全内容 。

有什么想法可以让谷歌字体强制 SSL 吗?

4

4 回答 4

77

您是否尝试过在网址中替换https:////?该请求应自动使用正确的协议。

于 2012-08-25T04:18:48.097 回答
4

在您的 HTML 页面(或模板)上找到这一行:

<link href='http://fonts.googleapis.com/css?family=Dosis:400,700' rel='stylesheet' type='text/css'>

并将其更改为:

 <link href='//fonts.googleapis.com/css?family=Dosis:400,700' rel='stylesheet' type='text/css'>

这个简单的更改将使您的浏览器以适用的模式(HTTP 与 HTTPS)调用 Google 字体页面。

享受!

于 2014-02-16T13:48:18.350 回答
3

要加载将在非安全和 SSL 模式下工作的谷歌字体,请在页面标题中尝试以下操作 - (并删除您在 CSS 中调用 https:// 的内容):

<script type="text/javascript">
  WebFontConfig = { google: { families: [ 'Droid+Serif::latin' ] } };
  (function() {
  var wf = document.createElement('script');
  wf.src = ('https:' == document.location.protocol ? 'https' : 'http') +
    '://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js';
  wf.type = 'text/javascript';
  wf.async = 'true';
  var s = document.getElementsByTagName('script')[0];
  s.parentNode.insertBefore(wf, s);
})();
</script>

在我的示例中,我使用的是 Droid Serif 字体,因此请与您的交换。

您可以在此处阅读有关此内容的更多信息。

于 2013-04-10T09:13:27.927 回答
0

我也遇到了由 WordPress 中的主题引起的错误。它导致页面加载缓慢,开发控制台报告以下错误:

混合内容:“https://xxxxxxx.co.uk/”页面通过 HTTPS 加载,但请求的样式表不安全“http://fonts.googleapis.com/css? 家庭=机器人+衬线%3A400%2C700%2C400italic%2C700italic&ver=5.4.1'。此请求已被阻止;内容必须通过 HTTPS 提供。

罪魁祸首是名为“Fresh and Clean”的 Wordpress 主题。它继承了 2014 年编写的代码,其中包含“pre-SSL”编码实践

要解决此问题,只需在主题中的以下文件中进行更改:

/wp-content/themes/wpex-freshandclean/functions/scripts.php

在里面寻找任何出现http:// 并将每一个更改为https://

于 2020-05-29T01:23:35.990 回答