web-dev-qa-db-ja.com

HTTPSでのGoogleフォントの読み込み、コンテンツはブロックされています

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.'" />';
            }
27
vico

http://fonts.googleapis.com/...が出現するたびにhttps://fonts.googleapis.com/...に置き換えてテーマを編集します(sに注意してください)。

セキュリティ上のリスクを引き起こす可能性のあるリソース(スクリプトやフォントなど)は、明らかな理由により、セキュリティで保護されたページのコンテキストで要求された場合、セキュリティで保護された接続を通じて読み込む必要があります。

45

プロトコル相対URI を使用します

//プレフィックスを使用するだけです。 (instead of http[s]://

  • Httpsページで、安全なバージョンがロードされます。
  • プレーンなhttpページでは、プレーンなhttpバージョンがロードされます。

http://fonts.googleapis.com/...が出現するたびに//fonts.googleapis.com/...に置き換えてテーマを編集します

23
harmv

参照から「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
7
Yatender Singh

Google cdnリンクを使用していて、アクセスできない(中国のような国など)ときに、cdnsの代わりにローカルファイルを使用しようとすると、この問題に直面しました

1
Ashish Devade