有一个wordpress主题会自动拉出选中的字体并从谷歌字体中请求它。当几个选定页面需要ssl时,字体变为missing
查看控制台日志:
[已屏蔽]“https://www.example.com/”页面是通过HTTPS加载的,但是运行了来自“http://fonts.googleapis.com/css?family=Alegreya+Sans:300,400,500,700,800”的不安全内容:此内容也应通过HTTPS加载。
会进入代码并使用谷歌字体的所有https请求工作吗?这有什么解决方法吗?
找到了源代码......但好像它已经在做了这个... if逻辑中是否会出错?
$prefix = "http";
if(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') $prefix = "https";
if($get_google_font){
if(!in_array($rule_split[0], $this->used_fonts))
{
$this->extra_output .= "\n<!-- google webfont font replacement -->\n";
$this->extra_output .= '<link id="google_webfont_'.$this->webfont_count.'" rel="stylesheet" type="text/css" href="'.$prefix.'s://fonts.googleapis.com/css?family='.str_replace(' ','+',$rule_split[0]).$font_weight.'" />';
}
答案 0 :(得分:44)
使用http://fonts.googleapis.com/...
编辑主题,将https://fonts.googleapis.com/...
替换为{{1}}(请注意 s )。
在安全页面的上下文中请求时,必须通过安全连接加载可能带来安全风险的资源(例如脚本和字体),原因很明显:它们可能在此过程中受到操纵。
答案 1 :(得分:23)
只需使用//
前缀即可。 (instead of http[s]://
)
使用http://fonts.googleapis.com/...
//fonts.googleapis.com/...
替换每个出现的Bundle b=getIntent().getExtras();
答案 2 :(得分:7)
让浏览器处理所有内容,只需从您的引用中删除“http”。
如果你遇到同样的问题,你也必须为其他图书馆做 e.g。
https://fonts.googleapis.com/css?family=Open+Sans:700,600,800,400
到
//fonts.googleapis.com/css?family=Open+Sans:700,600,800,400
同样适用于
http://maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css
到
//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css
答案 3 :(得分:1)
当您使用google cdn链接并且无法访问时(例如像china这样的国家/地区),我遇到了这个问题,请尝试使用本地文件代替cdns