Font FaceがIIS 8.0で機能しない


118

Font Squirrelから生成されたプログラムにfont-faceがあります。IISで機能させることができません。localhostで機能します。MIMEタイプにapplication / font-woffの 記事を追加しましたが、動作しません。

Context
--Fonts
----font location
--css files

CSS

@font-face {
    font-family: 'wallStreetFont';
    src: url('Fonts/subway-webfont.eot');
    src: url('Fonts/subway-webfont.eot?#iefix') format('embedded-opentype'),
         url('Fonts/subway-webfont.woff2') format('woff2'),
         url('Fonts/subway-webfont.woff') format('woff'),
         url('Fonts/subway-webfont.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
}

現在のMIMEを編集

デフォルトのIIS 8 MIME font / x-woffを使用しています


どうやって呼びますか?Font Squirrel zipのサンプル出力を試しましたか?
Aibrean 2014

IIS 8を使用している場合、WOFFのWeb構成にMIMEタイプを追加する必要はありません。実際、重複しているとエラーが発生する可能性が高くなります。
Colin Bacon 14

@Aibreanはい、サンプル出力は機能します
joetinger '11 / 09/21

@ColinBacon投稿後に読んだ。だから私は現在font / x-woffを持っています、これはIIS 8.0から継承されています。しかし、正しいフォントを入手するのにまだ運がありません
joetinger

回答:


259

WOFF2がFont Squirrelフォントに含まれているのを見るのは素晴らしいことです。IIS 8にはMIMEタイプを追加する必要はありませんが、MIMEタイプには追加WOFFする必要がありWOFF2ます。W3Cは次のことを推奨しています。

application/font-woff2

詳細についてWOFF2は、こちらをご覧ください

IISにMIMEタイプを追加するには、Web.Config次のように変更します。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <!-- ... -->
  <system.webServer>
    <!-- ... -->
    <staticContent>
      <!-- ... -->
      <mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />
    </staticContent>
    <!-- ... -->
  </system.webServer>

2
私は追加しましたwoff2が、まだ何もありません
joetinger 14

4
あなたの開発ツールを見れば。フォントファイルを取得しようとしたときに404を取得していますか?パスが正しいこと、およびブラウザで参照する権限があることを確認してください。
Colin Bacon

はいhttp://192.168.72.196:85/bundles/Fonts/subway-webfont.woff2、あります。バンドルフォルダをどこから取得しているのかはわかりません。何か案が?
joetinger 14

4
ASP.NETのバンドリングとミニファイを使用していると思います。これをバンドル構成で設定した場合BundleTable.EnableOptimizations = true。ローカルホストは、運用サーバーと同じように動作する必要があります。
Colin Bacon 14

1
それが今働いているすべての助けをありがとう。これはwoff2と404エラーの組み合わせでしたが、結局は私のバンドルのスペルミスになりました。ありがとうございました!
joetinger 14

79

IISでwoffおよびwoff2フォントを正しく機能させるには、次のMIMEタイプをWeb.Configファイルに追加する必要があります。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>  
  <system.webServer>    
    <staticContent>
        <remove fileExtension=".woff" />
        <remove fileExtension=".woff2" />
        <mimeMap fileExtension=".woff" mimeType="application/x-font-woff" />
        <mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />
    </staticContent>

それでもGoogle Chromeで404エラーが発生する場合は、ページをリロードする前にブラウザーのキャッシュをクリアする必要があります。


2
仕様では、woffのmimeTypeをapplication / font-woffにすることを推奨しています。
スティーブン

2
.woff2 404の問題のみが発生しましたが、これでうまくいきました。私はwoff2に関連する行のみを使用しました
Francisc0

26

IISマネージャー内でMIMEタイプを構成することもできます。Webサイトを選択して、メインペインのIISの下にあるMIMEタイプアイコンをダブルクリックします。

ここに画像の説明を入力してください

次に、既存のすべてのMIMEタイプのリストが表示され、右側のペインの[追加...]リンクを使用して新しいMIMEタイプを追加できるはずです。


2
なぜweb.configを使用しないのですか?
Mojtaba Pourmirzaei 2016

7
@MojtabaPourmirzaei誰もがシステム管理者ではないため。IISにUIがあるのは、それが理由です。
Alph.Dev 2017

IISで.NET以外のWebサイトを展開している場合は、この方法で実行する必要があります(Angularアプリなど)。
Jon Kruger

0

WebソリューションのMetro4 UIアイコンを展開し、CDNからコンパイル済みオプションに切り替えるときに、今日この問題が発生していました。

私のプロジェクトはWebSharperプラットフォームを使用して開発されましたが、ソリューションはとにかくこれらの実装の詳細から独立しています。

要するに、のの下のセクション.ttf内に、たとえばのファイル拡張子を追加する必要があることを発見しました。securitysystem.webServerWeb.config

<security>
    <requestFiltering>
        <fileExtensions>
            <add fileExtension=".ttf" allowed="true" />
        </fileExtensions>
    </requestFiltering>
</security>

IISのGUI設定でも同じ構成オプションを使用できます

IIS GUI

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.