wordpressテーマがあり、選択されたオプションのフォントを自動的にプルし、Googleフォントから要求します。選択されたいくつかのページでsslが必要な場合、フォントはmissing
コンソールログの表示:
[ブロック]「 https://www.example.com/ 」のページはHTTPS経由でロードされましたが、「 http://fonts.googleapis.com/ css?family = Alegreya + Sans:300,400,500,700,8 ':このコンテンツもHTTPSでロードする必要があります。
コードに入り、Googleフォントから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.'" />';
}
http://fonts.googleapis.com/...
が出現するたびにhttps://fonts.googleapis.com/...
に置き換えてテーマを編集します(sに注意してください)。
セキュリティ上のリスクを引き起こす可能性のあるリソース(スクリプトやフォントなど)は、明らかな理由により、セキュリティで保護されたページのコンテキストで要求された場合、セキュリティで保護された接続を通じて読み込む必要があります。
プロトコル相対URI を使用します
//
プレフィックスを使用するだけです。 (instead of http[s]://
)
http://fonts.googleapis.com/...
が出現するたびに//fonts.googleapis.com/...
に置き換えてテーマを編集します
参照から「http」を削除するだけで、すべてのものをブラウザに処理させることができます。
同様に、それらと同じ問題に直面している場合にも、他のライブラリに対して行う必要があります。
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
Google cdnリンクを使用していて、アクセスできない(中国のような国など)ときに、cdnsの代わりにローカルファイルを使用しようとすると、この問題に直面しました