56

我正在做一个电子商务项目。默认情况下,网站的某些部分是 HTTP。其他的,例如结帐页面,默认是 HTTPS。在 HTTPS 页面上,我在 Chrome 的控制台上收到此消息:

[blocked] The page at https://store-ws3q9h.mybigcommerce.com/checkout.php?tk=c99fa39e007db6376dcddaac68695c22 ran insecure content from http://fonts.googleapis.com/css?family=PT+Sans. 
[blocked] The page at https://store-ws3q9h.mybigcommerce.com/checkout.php?tk=c99fa39e007db6376dcddaac68695c22 ran insecure content from http://fonts.googleapis.com/css?family=Open+Sans:400italic,400,300,700.
[blocked] The page at https://store-ws3q9h.mybigcommerce.com/checkout.php?tk=c99fa39e007db6376dcddaac68695c22 ran insecure content from http://fonts.googleapis.com/css?family=Patua+One.

字体以这种方式链接在文档头上:

<link href='http://fonts.googleapis.com/css?family=PT+Sans' rel='stylesheet' type='text/css'>
<link href='http://fonts.googleapis.com/css?family=Open+Sans:400italic,400,300,700' rel='stylesheet' type='text/css'>
<link href='http://fonts.googleapis.com/css?family=Patua+One' rel='stylesheet' type='text/css'>

在我迄今为止测试过的其他浏览器上看起来还可以。

4

2 回答 2

119

创建与架构无关的 url

更改http://fonts.google...//fonts.google...

从前面删除http:https:,浏览器将使用您当前在站点上使用的任何架构。

https您可以使用from请求资源http,但反之则不行。上述解决方案的替代方案(可能是最佳实践)是始终 https在可用时使用(如果您使用这种链接样式,则必须如此,否则无论如何都没有意义)。

于 2013-08-02T22:11:09.450 回答
31

从您的 URL 中删除协议并让浏览器确定它:

<link href="//fonts.googleapis.com/css?family=PT+Sans" ...

如果您的页面是 HTTPS,字体将从 HTTPS URL 加载。如果页面是 HTTP,它将从 HTTP URL 加载。

于 2013-08-02T22:11:09.653 回答