HTTPS を使用したクロスブラウザー フォントの埋め込み: IE @font-face EOT 読み込みの問題の解決
埋め込み時に遭遇する重要な課題の 1 つ@font-face を使用するフォントは、さまざまなブラウザ間での互換性を保証します。ほとんどのブラウザはさまざまなフォント形式をサポートしていますが、Internet Explorer 7、8、および 9 は、HTTPS 経由で EOT フォントにアクセスするときに特有の動作を示します。
この問題は、HTML 経由で EOT フォントをロードしようとすると発生します。 @font-face 宣言を含むページは、HTTP または HTTPS でホストできます。このようなシナリオでは、Internet Explorer はプレーン HTTP 経由でシームレスに動作するにもかかわらず、EOT フォントのロードに失敗します。
根本的な原因を詳しく調べるには、フォントをホストしているサーバーを調べることが重要です。ほとんどの場合、サーバーは EOT フォント ファイルに対して適切なコンテンツ タイプ ヘッダー、つまり「application/vnd.ms-fontobject」を送信する必要があります。
問題は、HTTP ヘッダー Cache-Control が設定されている場合に発生します。フォントを「キャッシュなし」にします。この設定は HTTP 環境では許容されますが、Internet Explorer は HTTPS 経由でダウンロードされたフォントを無視します。
この動作の最も可能性の高い説明は、KB 815313 で説明されている動作に似ているということです。この動作は、次の場合のキャッシュの防止に対処しています。アクティブなドキュメントを SSL 経由でダウンロードします。したがって、「Cache-Control」ヘッダーが存在し、「no-cache」に設定されている場合は、それを削除すると問題が解決するはずです。
したがって、開発者ツールのフォント オプションで Internet Explorer が進行しているのを観察すると、 HTTPS 経由で EOT フォントをロードせずにネットワーク ビューを表示し、「Cache-Control」ヘッダーを確認して削除することが解決策となる可能性があります。この微妙な違いに対処することで、HTTPS 経由でフォントにアクセスする場合でも、ブラウザ間で一貫したフォントの埋め込みを確保できます。
以上がInternet Explorer 7、8、9 が HTTPS 経由で EOT フォントをロードできないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。