私は自分の会社のサイトで@font-face
を使っていますが、それはうまく動作します/素晴らしいです。 FirefoxとChromeを除くと.woff
ファイルに404エラーが発生します。 IEはエラーをスローしません。私はフォントをルートに配置していますが、cssフォルダにあるフォントを試してみて、フォントのURL全体を指定したこともあります。私のCSSファイルからそれらのフォントを削除しても404が出ないので構文エラーではないことがわかります。
また、私はfontsquirrelsツールを使って@font-face
フォントとコードを作成しました。
@font-face {
font-family: 'LaurenCBrownRegular';
src: url('/laurencb-webfont.eot');
src: local('☺'),
url('/laurencb-webfont.woff') format('woff'),
url('/laurencb-webfont.ttf') format('truetype'),
url('/laurencb-webfont.svg#webfontaaFhOfws') format('svg');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'FontinSansRegular';
src: url('/fontin_sans_r_45b-webfont.eot');
src: local('☺'),
url('/fontin_sans_r_45b-webfont.woff') format('woff'),
url('/fontin_sans_r_45b-webfont.ttf') format('truetype'),
url('/fontin_sans_r_45b-webfont.svg#webfontKJHTwWCi') format('svg');
font-weight: normal;
font-style: normal;
}
私はこれと同じ症状(Chromeのwoffファイルで404)を経験していて、IIS 6を使用してWindows Server上でアプリケーションを実行していました。
同じ状況にある場合は、次のようにして修正できます。
「IIS Manager(Webサイトのプロパティの[HTTPヘッダー]タブ)を使用して、次のMIMEタイプ宣言を単純に追加します。 .woff application/x-woff「
更新: woffフォントのMIMEタイプ と に従ってGrsmto 実際のMIMEタイプは application/x-font-woff(少なくともChrome用)。 x-woffはChrome 404を修正し、x-font-woffはChromeの警告を修正します。
2017年現在:Woffフォントは、 RFC8081仕様 の一部としてMIMEタイプに標準化されましたfont/woff
とfont/woff2
。
Seb Dugganに感謝します: http://sebduggan.com/posts/serving-web-fonts-from-iis
MIMEタイプをWeb設定に追加することもできます。
<system.webServer>
<staticContent>
<remove fileExtension=".woff" /> <!-- In case IIS already has this mime type -->
<mimeMap fileExtension=".woff" mimeType="font/woff" />
</staticContent>
</system.webServer>
この記事への答えはとても役に立ち、大きな時間の節約になりました。しかし、FontAwesome 4.50
を使用するときは、woff2
タイプの拡張子の追加設定を追加する必要があることもわかりました。そうしないと、woff2
タイプに対するリクエストで、コンソールのエラーでChromeの開発者ツールに404エラーが発生しました。
S.Serpのコメントによると、以下の設定は<system.webServer>
タグ内に配置する必要があります。
<staticContent>
<remove fileExtension=".woff" />
<!-- In case IIS already has this mime type -->
<mimeMap fileExtension=".woff" mimeType="application/x-font-woff" />
<remove fileExtension=".woff2" />
<!-- In case IIS already has this mime type -->
<mimeMap fileExtension=".woff2" mimeType="application/x-font-woff2" />
</staticContent>
実際には@Ian Robinsonの答えはうまくいきますが、Chromeはそのメッセージを続けて文句を言うでしょう: "フォントとして解釈されたがMIMEタイプapplication/x-woff"
あなたがそれを得たら、あなたはから変更することができます
application/x-woff
に
アプリケーション/ x-フォント-woff
chromeコンソールのエラーはもう発生しません。
(Chrome 17でテスト済み)
Ianの答えに加えて、リクエストフィルタリングモジュールのフォント拡張子を有効にすることを許可しなければなりませんでした。
<system.webServer>
<staticContent>
<remove fileExtension=".woff" />
<remove fileExtension=".woff2" />
<mimeMap fileExtension=".woff" mimeType="application/x-font-woff" />
<mimeMap fileExtension=".woff2" mimeType="application/x-font-woff" />
</staticContent>
<security>
<requestFiltering>
<fileExtensions>
<add fileExtension=".woff" allowed="true" />
<add fileExtension=".ttf" allowed="true" />
<add fileExtension=".woff2" allowed="true" />
</fileExtensions>
</requestFiltering>
</security>
</system.webServer>
IIS Server Managerを実行します(実行コマンド:inetmgr)。MIMEタイプを開き、以下を追加します。
ファイル名拡張子:.woff
MIMEタイプ:application/octet-stream
私はパーミッション、MIMEタイプなどについてたくさんのことを試みましたが、結局のところ、web.configがIISのStaticファイルハンドラを削除し、それから静的ファイルを含むディレクトリに明示的にそれを追加し直したことになりました。ディレクトリにロケーションノードを追加し、ハンドラを追加し直すとすぐに、リクエストは404を取得できなくなりました。
IIS 7でCodeIgniterを使用している場合
Web.configファイルで、woffをパターンに追加します
<rule name="Rewrite CI Index">
<match url=".*" />
<conditions>
<add input="{REQUEST_FILENAME}" pattern="css|js|jpg|jpeg|png|gif|ico|htm|html|woff" negate="true" />
</conditions>
<action type="Rewrite" url="index.php/{R:0}" />
</rule>
それが役に立てば幸い !
Webサーバの設定にアクセスできない場合は、フォントファイルの名前を変更してsvgで終わるようにすることもできます(ただし形式は保持します)。 ChromeとFirefoxでは私には問題なく動作します。
これは明らかかもしれませんが、それは何度も404sで私をつまずかせました...フォントフォルダ許可が正しく設定されていることを確認してください。
それを解決しました:
私は使わなければならなかった Mo'Bulletprooferメソッド
URLリライタも確認してください。 「変な」何かが見つかった場合、404をスローする可能性があります。