EDIT 23-06-2012 10:24 (CET)
:答えを見つけた
一番下の答えを見てください。それが私にとって問題を解決したものです。IE9は現在正しい方法でレンダリングしています。IE8のフォントは少し異なります。どのフォントかはわかりませんが、「OK」に見えます。
Original Question:
私はこれに数時間苦労しています。お客様の1人のために、Webショップを設計し、通常の安全でないhttp接続を介してこれを開発しています。2日前から、ドメインにSSL証明書をインストールし、ウェブサイトとのすべての接続で.htaccessを使用してhttpsドメインを経由するように強制しました。
しかし、何らかの理由で、IE(バージョンなし)は@Font-Faceを使用してCSSで指定したフォントをレンダリングします。フォントに使用しているコードは次のとおりです。
@font-face {
font-family: 'ProximaNovaLight';
src: url('https://www.bijouterieyvette.com/font-face/proximanova-light-webfont.eot');
src: url('https://www.bijouterieyvette.com/font-face/proximanova-light-webfont.eot?#iefix') format('embedded-opentype'),
url('https://www.bijouterieyvette.com/font-face/proximanova-light-webfont.woff') format('woff'),
url('https://www.bijouterieyvette.com/font-face/proximanova-light-webfont.ttf') format('truetype'),
url('https://www.bijouterieyvette.com/font-face/proximanova-light-webfont.svg#ProximaNovaLight') format('svg');
font-weight: normal;
font-style: normal;
}
ご覧のとおり、httpsを含むフォントへの完全なリンクを使用しています。SSL証明書ドメインと一致するようにファイルをドメインのルートに移動しようとしました。また、CSS内から相対パスを使用しようとしましたが、これも機能しませんでした。
すべてのフォントはドメイン上にあり、クロスドメインではありません。
私はここで同様の問題を説明しているSOに関する他の2つの投稿に出くわしました。一方は解決されなかった、もう一方は解決されましたが、同じ問題ではなかったようです。この場合、質問の作成者は、Access-Control-Allow-Originヘッダーをwoff / ttf / otf/svgのファイル要求に追加する必要がありました。念のため、これらのヘッダーも.htaccessに追加しました。
<FilesMatch "\.(woff|ttf|otf|svg)$">
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
</FilesMatch>
私はオプションと考えが不足しているようなものです。私はserver-configuration-type-of-guyではありませんが、PHP / MySQL / jQueryに興味があるので、ここSOの他の人と比べて私の考えはかなり限られていると思います。
誰かが試す価値のあるオプションを持っているなら、私に知らせてください!
UPDATE 22-06-2012
:
httpsをhttpに変更してIEでページを更新すると、セキュリティで保護されていないコンテンツがあるというメッセージが表示され、このコンテンツを受け入れるオプションがあります。「はい」を選択すると、コンテンツが読み込まれ、フォントが使用可能になります。イェーイ..しかし..httpsに戻すと、フォントが再び消えます。
これから何が学べるかわかりませんが(笑)、ちょっとしたアイデアになるかもしれません。
UPDATE 22-06-2012 #2
:
これまで私は試しました:
url('// protocol / relative / font.eot'); url('../file/relative/font.eot'); url('/domain/relative/font.eot'); url('https://www.secure.tld/font.eot'); url('http://www.normal.tld/font.eot'); (動作しますが、「IEに安全でないアイテムが含まれています」というポップアップが表示されます)
また、FilesMatch(woff、ttf、otf、eot、svg)をhttp://接続に強制するリライターを作成しようとしました。それは私が思ったようには機能しませんでした、そして私はそれが何かをしたかどうかの手がかりを持っていません..
私もこれを追加しました:
AddType application/vnd.ms-fontobject .eot
AddType font/truetype .ttf
AddType font/opentype .otf
AddType font/opentype .woff
AddType image/svg+xml .svg .svgz
フォント(もちろん.htaccessファイル内)とメインの.htaccessファイルを含むフォルダーへ。
htpasswdログインを削除しようとしたことに加えて、それは大げさな推測でしたが、何も変更しませんでした。
UPDATE 23-06-2012
:
DirectAdminサーバーのログを確認しました。IEがフォントを要求しているようです(疑問符が付いたeotファイルが表示されます。これは、iefixとwoffが要求されているeotだと思います)。要求されたものはすべて、200 OKヘッダー応答も受け取りますが、これは私にとって物事をより明確にするものではありません。
まだこの問題を引き起こす可能性のあるものを探して探しています。
また、「F12コンソールログ」に基づいています-IEのことです。フォントが-https経由で-200OK応答で要求されていることがはっきりとわかります。奇妙なことに、使用している4つのフォントのうち3つしか表示されませんが、メインページで4番目のフォントが使用されていない可能性があります。