ダウンロードしたフォントをデコードできませんでした


149

これはChromeで発生しているエラーであり、残念ながら検索しても多くの結果が得られません。フォント自体は正しく表示されています。ただし、まだこのエラー/警告が表示されます。より具体的には、これは完全な警告です:

「ダウンロードしたフォントのデコードに失敗しました: http:// localhost:8000 / app / fonts / Lato /

私のCSSは次のとおりです。

@font-face {
    font-family:"Lato";
    src: url("../fonts/Lato/");
}

html, body {
    font-family:'Lato';
}

分かりません。フォントは正しく適用されていますが、警告は常にそこにあります。使用しようとするSans-Serifと、フォントが通常のブラウザフォントに戻るので、そうなる可能性がありますが、よくわかりません。検索しても何も見つかりません。ありがとう!

編集

さまざまなフォントファイルがあり、すべて同じファミリのものです。それらをすべてロードしようとしています。フォントファイルは.ttfです。私は、ローカルフォルダからそれらをロードしていますし、様々なフォントファイル、などがあるLato-Black.ttfLato-Bold.ttfLato-Italic.ttfなど


2
なぜURLの末尾にスラッシュがあるのですか?ディレクトリからすべてのファイルをロードしようとしていますか、それとも実際には単一のフォントファイルへのリダイレクトですか?
アルバロ・ゴンサレス

@ÁlvaroG.Vicarioこんにちは、お時間をいただきありがとうございます。質問をわかりやすくするために編集しました。
ルイスフェレイラ

回答:


101

cssルールでは、ファイルの拡張子を追加する必要があります。可能な限り深いサポートがあるこの例:

@font-face {
  font-family: 'MyWebFont';
  src: url('webfont.eot'); /* IE9 Compat Modes */
  src: url('webfont.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
       url('webfont.woff2') format('woff2'), /* Super Modern Browsers */
       url('webfont.woff') format('woff'), /* Pretty Modern Browsers */
       url('webfont.ttf')  format('truetype'), /* Safari, Android, iOS */
       url('webfont.svg#svgFontName') format('svg'); /* Legacy iOS */
}

編集:

「ダウンロードされたフォントのデコードに失敗しました」とは、フォントが破損しているか、不完全であることを意味します(メトリクス、必要なテーブル、レコードの命名、100万の可能性があるもの)。

この問題は、フォント自体が原因で発生する場合があります。Googleフォントは必要な正しいフォントを提供しますが、フォントフェイスが必要な場合は、Transfonterを使用してすべてのフォントフォーマットを生成します。

FTPクライアントがファイルを破損している場合があります(ローカルPC上にあるため、この場合ではありません)。ファイルはASCIIではなくバイナリで転送してください。


質問をわかりやすくするために編集しました。あなたが投稿した内容が変更されるかどうかはわかりません。ごちゃごちゃしてごめんね、お時間をいただきありがとうございます。
ルイスフェレイラ

1
必ず@font faceを使用する必要がありますか?LatoがGoogleフォントで利用できることは知っています。とにかくこれを試すことができます: font-family: 'Lato'; font-style: normal; font-weight: 400; src: local('Lato Regular'), local('Lato-Regular'), url('../font/file for regular font.wof') format('wof');このコードは、すべてのタイプのフォント、レギュラー、ボールドなどに使用できます...
Germano Plebani

1
私はグーグルフォントオプションを使用してしまい、それはうまくいきました。ありがとう。私はあなたの答えを受け入れました。
ルイス・フェレイラ

9
この質問には、「ダウンロードしたフォントをデコードできませんでした」というラベルが付いています。答えは特定の状況であり、実際にはエラーの意味を述べていません。
Krii 2016

24

問題url()のフォントへの誤ったパスが原因であるVisual Studioで同様の問題が発生しました。

(たとえば)変更した後、このエラーが発生しなくなりました。

@@font-face{
    font-family: "Example Font";
    src: url("/Fonts/ExampleFont.eot?#iefix");

これに:

@@font-face{
    font-family: "Example Font";
    src: url("../fonts/ExampleFont.eot?#iefix");

1
私にとって./または../は機能しませんでしたが、/を完全に削除すると、に移動/assets...assets...ました。
Shereef Marzouk

21

format( 'woff')からformat( 'font-woff')に変更すると、この問題を今すぐ解決できます。

ここで、Germano Plebaniの回答から少し変更してください。

 @font-face {
  font-family: 'MyWebFont';
  src: url('webfont.eot'); /* IE9 Compat Modes */
  src: url('webfont.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
       url('webfont.woff2') format('woff2'), /* Super Modern Browsers */
       url('webfont.woff') format('font-woff'), /* Pretty Modern Browsers */
       url('webfont.ttf')  format('truetype'), /* Safari, Android, iOS */
       url('webfont.svg#svgFontName') format('svg'); /* Legacy iOS */
}

ブラウザのソースがそれを開くことができるかどうか、タイプは何であるかを確認してください


7
font-woff形式が間違っているため、「woff」と表示されます。これにより、Chromeはwoffフォントを不明なフォーマットと見なし、次の最良のフォーマット(おそらくここではwoff2のttf)にスキップします
Arthur

どうもありがとう、この解決策で他の形式(ttf、woff2など)の問題も解決できました。
ファー

5
残念ながら、この答えは間違っています。@Arthurが何を言っているかは不明かもしれませんが、フォント形式名を変更すると、フォントとして登録されないため、ブラウザは文字通りフォントを無視します。Chromeの検査ツール(F12)で、[ アプリケーション ]タブに移動し、[フレーム]> [トップ]> [フォント]に移動します。このソリューションを使用すると、フォントが削除されます。私はめったにSOで反対票を使用しませんが、この場合、読者が問題を解決したと思ってカモフラージュしただけなので、答えは実際には読者を悪化させます。
アンドレC.アンデルセン

これで、Nextjsプロジェクトにwoffファイルをインポートするときの問題が解決しました。どうもありがとう!
Thanh-Quy Nguyen

@AndréC.Andersenが言うように、この回答は問題をカモフラージュするだけで、修正はしません
JohnK

12

サーバーがフォントファイルを正しいmime / typeで送信していることを確認してください。

一部のフォントMIMEタイプがそのバニラファイルから欠落しているため、nginxを使用して同じ問題が最近発生しました/etc/nginx/mime.types

次のように、必要な場所に不足しているMIMEタイプを追加する問題を修正しました。

location /app/fonts/ {

  #Fonts dir
  alias /var/www/app/fonts/;

  #Include vanilla types
  include mime.types;

  #Missing mime types
  types  {font/truetype ttf;}
  types  {application/font-woff woff;}
  types  {application/font-woff2 woff2;}
}

nginxでmime.typesを拡張するためにこれをチェックアウトすることもできますデフォルトのnginx mime.typesファイルを拡張する


12

type="text/css"リンクタグに追加する必要がありました。私はそれを次のように変更しました:

<link href="https://fonts.googleapis.com/css?family=Roboto+Condensed:300,400,700" rel="stylesheet">

に:

<link href="https://fonts.googleapis.com/css?family=Roboto+Condensed:300,400,700" rel="stylesheet" type="text/css">

変更後、エラーは消えました。


ありがとうございます。だから誰かがグーグルからフォントをロードしているならそれtype="text/css"を追加するだけで、ブラウザコンソールの警告メッセージは「ハード」リフレッシュ後に消えます
lewis4u


6

私にとって、このエラーは、httpsを使用してGoogleフォントを参照したときに発生していました。httpに切り替えたところ、エラーは解消しました。(そして、はい、それが原因であることを確認するために何度か試しました)

だから私は変更しました:

@import url(https://fonts.googleapis.com/css?family=Roboto:300,400,100,500,900);

に:

@import url(http://fonts.googleapis.com/css?family=Roboto:300,400,100,500,900);

3
Googleフォントでも同じエラーが発生しました。ハードリロードを実行すると、問題は自動的に解決されました。
Maulik Gangani 2017

1
-1、ごめんなさい。これにはドロップサポートを使用しないでくださいhttps。それはあなたのサイトを不安定にします。@MaulikGanganiの観測がうまくいきます!それを回答に組み込むことを検討してください
CiprianTomoiagăOct

4

間違ったFTPメソッドを使用してフォントをアップロードまたはダウンロードすると、この問題が発生することがあります。フォントは、ASCIIではなくバイナリ方式を使用してFTPで転送する必要があります。(気分によっては直感に反するかもしれませんが)。ASCII方式を使用してフォントファイルをFTP転送すると、このエラーメッセージが表示されます。「自動」方式でファイルをFTP送信し、このエラーメッセージが表示された場合は、FTPでバイナリ方式を強制してみてください。


3

私はfont awesome v4.4で同じ問題を抱えていましたが、woff2形式を削除して修正しました。Chromeでのみ警告が表示されました。

@font-face {
  font-family: 'FontAwesome';
  src: url('../fonts/fontawesome-webfont.eot?v=4.4.0');
  src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.4.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff?v=4.4.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.4.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.4.0#fontawesomeregular') format('svg');
  font-weight: normal;
  font-style: normal;
}

1
はい!format( 'woff2')を削除し、警告を削除しました。ありがとう。
duyn9uyen 2016年

3

私の場合、それは.htaccess内の不正なパスファイルが原因で発生しました。ファイルパスが正しいことを確認してください。


2

私にとっての間違いは、フォントファイルをアップロードする前にFTPをバイナリモードにするのを忘れていたことです。

編集する

画像などの他のタイプのバイナリデータをアップロードして、これをテストできます。それらも表示に失敗する場合は、これが問題である可能性があります。


これには別の用語がありますか?どちらのFTPクライアントにもそのオプションが見つからないようです。
肉腫:

* nixコマンドラインブラウザでは、BINおよびASCIIという用語しか知りません。最近のFTPクライアントの多くは、どのファイルがバイナリでどのファイルがそうでないかを知っていると思いますので、おそらくそれはあなたの問題ではありません。FTPクライアントがバイナリモードで送信しているかどうかをテストする場合は、FTPを使用して.jpgなどのバイナリデータを移動してから、それを表示してみてください。ASCIIモードで送信された場合は表示されません。(jscape.com/blog/…を参照)
Robert Gowland

ああ、説明ありがとうございます。アップロードしているすべての画像に問題はありませんが、FileZillaでバイナリモードを見つけましたが、残念ながら役に立ちませんでした。PHP Stormでバイナリ用のオプションを見つけることができませんでしたが、画像は問題ないと言ったので、これは私が抱えている問題ではないと思います。
肉腫2017

1

私も同じ問題がありましたが、すべての.ttfファイルの応答ヘッダーに 'Content-Type': 'application / x-font-ttf'を追加することで解決しました


1
これを行う方法 ?
Baim Wrong 2018

1

私の場合、これは、フォントファイルの追加を含むSVNパッチファイルを作成したことが原因でした。そのようです:

  1. ローカルファイルシステムからサブバージョン化されたトランクにフォントファイルを追加する
  2. トランクは期待どおりに機能します
  3. フォントファイルの追加を含めるために、トランク変更のSVNパッチを作成します
  4. 別のブランチにパッチを適用する
  5. フォントファイルはサブバージョン化されたブランチに追加されます(コミットすることができます)が、破損しており、OPでエラーが発生します。

解決策は、フォントファイルをローカルファイルシステムからブランチに直接アップロードすることでした。SVNパッチファイルはすべてをASCII形式に変換する必要があり、フォントファイルのバイナリを必ずしも保持しないため、これが発生したと思います。しかし、それは推測にすぎません。


1

私の場合-ギャツビーでReactを使用-この問題は、すべてのパスを再確認することで解決しました。私はSassでReact / Gatsbyを使用しており、Gatsbyソースファイルはコンパイル済みファイルとは異なる場所でフォントを探していました。ファイルを各パスに複製すると、この問題はなくなりました。


1

私の場合、テンプレートをダウンロードするとき、フォントファイルは空のファイルでした。おそらくダウンロードに問題があります。Chromeはこの一般的なエラーを示しました。最初はからwoffに変更してfont-woff解決する方法を考えましたが、Chromeでフォントが無視されるだけでした。私の解決策は、フォントを1つずつ検索し、それらをダウンロード/置換することでした。


0

Expressを使用している場合は、次のようなものを追加して静的コンテンツの提供を許可する必要があります。var server = express(); server.use(express.static( './ public')); //ここで、publicはアプリのルートフォルダーで、そこに含まれるフォントを含むすべてのレベル、つまりpublic / fontsまたはpublic / dist / fonts ... //接続を使用している場合は、同様の構成でgoogle


0

.Net Framework 4.5 / IIS 7を使用しています

それを修正するために、フォントファイルを含むフォルダーにWeb.configファイルを置きました。

Web.configの内容:

<?xml version="1.0"?>
<configuration>
  <system.web>
    <authorization>
      <allow users="*" />
    </authorization>
  </system.web>
</configuration>


0

サーバー上(localhostではなく)にある場合は、フォントを手動でアップロードしてみてください。FTPクライアント(FileZillaなど)によってファイルが破損し、問題が発生することがあります。私にとっては、Cpanelインターフェースを使用して手動でアップロードしました。


0

私のケースは同じように見えましたが、フォントが壊れていました(そしてデコードすることが不可能でした)。Mavenの設定が原因でした。内のフォント拡張にnonFilteredFileExtensionを追加することmaven-resources-pluginは私を助けました:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <configuration>
        <nonFilteredFileExtensions>
            <nonFilteredFileExtension>ttf</nonFilteredFileExtension>
            <nonFilteredFileExtension>otf</nonFilteredFileExtension>
            <nonFilteredFileExtension>woff</nonFilteredFileExtension>
            <nonFilteredFileExtension>woff2</nonFilteredFileExtension>
            <nonFilteredFileExtension>eot</nonFilteredFileExtension>
        </nonFilteredFileExtensions>
    </configuration>
</plugin>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.