@ font-faceがwoffファイルで404エラーをスローするのはなぜですか?


422

@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;
}

FirefoxとChromeにはどのバージョンがありますか?Gecko 1.9.2(Firefox 3.6)はWOFFのサポートを追加します。
ソチリス

もう一度OTFをWoffに変換してみてください。同様の問題があり、ファイルの解析が壊れていました。これは、さまざまなタイプのフォントに変換するのに適したサイトです。onlinefontconverter.com
stacksonstacksonstacks

回答:


722

私は同じ症状-Chromeのwoffファイルで404-を経験しており、IIS 6を搭載したWindowsサーバーでアプリケーションを実行していました。

同じ状況の場合は、次のようにして修正できます。

解決策1

"IISマネージャー(Webサイトのプロパティの[HTTPヘッダー]タブ)を介して次のMIMEタイプ宣言を追加するだけです.woff application / x-woff "

更新:woffフォントGrsmtoのMIMEタイプによれば、実際のMIMEタイプはapplication / x-font-woff(少なくともChromeの場合)です。x-woffはChrome 404を修正し、x-font-woffはChromeの警告を修正します。

2017年現在:Woffフォントは、RFC8081仕様の一部としてMIMEタイプfont/woffとに標準化されていfont/woff2ます。

IIS 6 MIMEタイプ

Seb Dugganに感謝:http : //sebduggan.com/posts/serving-web-fonts-from-iis

解決策2

Web設定でMIMEタイプを追加することもできます:

  <system.webServer>
    <staticContent>
      <remove fileExtension=".woff" /> <!-- In case IIS already has this mime type -->
      <mimeMap fileExtension=".woff" mimeType="font/woff" />
    </staticContent>    
  </system.webServer>

5
Cannot add duplicate collection entry of type ‘mimeMap’ with unique key attribute ‘fileExtension’...applicationhost.configファイルとの競合が原因でエラーが発生する場合があることに注意してください。これを修正するに<remove fileExtension=".woff" />は、web.configファイルで新しいmimeMapを指定する直前に追加して、誤った重複を削除します。
ピート

11
MIMEタイプはとして標準化されていapplication/font-woffます。
フェルナンドコレイア14

5
これでうまくいきました!同じ問題があるが.woff2ファイルの場合は、その拡張子を持つ別のMIMEタイプ(または構成)を追加するだけ
mapache

2
仕様が(再度)変更されたようです。あなたのためのアドバイスは、application/x-font-woffのように、時代遅れになりましたRFC 8081に正しいMIMEタイプが今font/wofffont/woff2。リンクされた質問の最新の回答をご覧ください
Liam

3
この解決策は私にはうまくいきませんでした。どのような私のためのトリックをしたことだった:hotcakescommerce.zendesk.com/hc/en-us/articles/...
キム・ラジェ

53

この投稿への回答は非常に役に立ち、時間を大幅に節約できました。ただし、を使用する場合はFontAwesome 4.50woff2以下に示すように、拡張機能のタイプの追加の設定を追加する必要があることがわかりましたwoff2

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>

3
そして、あなたの言及したタグが<staticContent>内部でなければなりません<system.webServer>タグ
S.Serpooshan

完全に正常に動作し、Windows Server 2012 r2、ASP.Net MVC5からのレポート。
クロムウェル

44

実際には@Ian Robinsonの回答は適切に機能しますが、Chromeは引き続き次のメッセージで不平を言います:「リソースはフォントとして解釈されますが、MIMEタイプapplication / x-woffで転送されます

それを取得した場合、

application / x-woff

application / x -font -woff

もうChromeコンソールエラーは発生しません。

(Chrome 17でテスト済み)


これをどこで変更しますか?ブラウザまたはサーバーのどちらですか?
Jake Wilson、

上記の回答で説明したように、サーバーでなければなりません。このソリューションは、IIS 6とWindows Serverのためのものです
adriendenat

1
クロムはまだx-font-woffで不平を言っています
Sonic Soul

コメントを繰り返すと仕様が変更されたようです(再度)。あなたのためのアドバイスは、application/x-font-woffのように、時代遅れになりましたRFC 8081に正しいMIMEタイプが今font/wofffont/woff2。リンクされた質問の最新の回答をご覧ください
Liam

15

IIS7のソリューション

私も同じ問題に出くわしました。この構成はすべてのWebサイトに適用されるため、サーバーレベルから行う方が良いと思います。

  1. IIS ルートノードに移動し、[MIMEタイプ]構成オプションをダブルクリックします。

  2. 右上の[アクション]パネルの[追加]リンクをクリックします。

  3. これによりダイアログが表示されます。.woffファイル拡張子を追加し、対応するMIMEタイプとして「application / x-font-woff」を指定します。

.woffファイル名拡張子のMIMEタイプを追加する

MIMEタイプに移動

MIMEタイプを追加

IIS 7で問題を解決するために私がしたことは次のとおりです


2
リンクのみの回答は推奨されないことに注意してください。SOの回答は、ソリューションの検索のエンドポイントである必要があります。参照としてリンクを維持しながら、ここにスタンドアロンの概要を追加することを検討してください。
クレオパトラ2014年

@kleopatra-回答を詳細で更新し、リンクを削除しました。
Dhanuka777 2016年

「この設定をすべてのウェブサイトに適用できるので、サーバーレベルから行う方が良いと思います。」-まあ、それは本当に依存します。複数の内部アプリを実行している可能性のある企業サーバーを扱っている場合は、そうです。一方、複数のサーバーに分散された公開Webサイトを実行する場合、web.configメソッドは「一貫性」の点で勝ちます(つまり、一貫性があるため、1つで設定することを忘れないでください)。サーバ)。
バラージュ

10

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>

8

IISサーバーマネージャーを実行します(コマンドを実行:inetmgr)MIMEタイプを開き、以下を追加します

ファイル名拡張子: .woff

MIMEタイプ:application / octet-stream


1

アクセス許可やMIMEタイプなど、さまざまなことを試しましたが、結局、web.configがIISの静的ファイルハンドラーを削除し、静的ファイルを含むディレクトリ用に明示的に追加し直したのです。ディレクトリのロケーションノードを追加してハンドラーを再び追加するとすぐに、リクエストは404を取得しなくなりました。


1

IIS7で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>

それが役に立てば幸い !


0

これは明白かもしれませんが、404で何度もつまずきました...フォントフォルダーのアクセス許可が正しく設定されていることを確認してください。


0

また、URLリライターも確認してください。「奇妙な」何かが見つかった場合、404をスローすることがあります。


0

ウェブサーバーの設定にアクセスできない場合は、フォントファイルの名前を変更して、svgで終わるようにすることもできます(ただし、形式は保持します)。ChromeとFirefoxでうまく動作します。


0

MIMEタイプを追加しても機能しない場合は、サイトの認証セクションで「匿名認証」が有効になっているかどうかを確認し、所定のスクリーンショットに従って「アプリケーションプールID」を選択してください。

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



-1

解決しました:

Mo'Bulletprooferメソッドを使用しなければならなかった


それは、WOFFをもう使用していないということですか?WebサーバーがWOFFファイルを提供するように正しく構成されていない可能性がありますか?:例えば、この参照stackoverflow.com/questions/3594823/mime-type-for-woff-fonts/...
メルカトル

他のマシンでエンコーディングを使用してフォントをテストしました。正常に表示され、404エラーは表示されません。
dcp3450

それは私をさせません。エンコーディングは長い道のりです。それはここで説明されています:paulirish.com/2010/font-face-gotchas
dcp3450

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