Herunterladen der heruntergeladenen Schriftart fehlgeschlagen

149

Dies ist ein Fehler, den ich in Chrome erhalte und dessen Suche leider nicht viele Ergebnisse gebracht hat. Die Schriftart selbst wird korrekt angezeigt. Ich erhalte jedoch immer noch diesen Fehler / diese Warnung. Genauer gesagt ist dies die vollständige Warnung:

"Fehler beim Dekodieren der heruntergeladenen Schriftart: http: // localhost: 8000 / app / fonts / Lato / "

Mein CSS sind diese:

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

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

Ich verstehe es einfach nicht. Die Schriftart wird korrekt angewendet, aber die Warnung ist immer da. Beim Versuch, Sans-Serifdie Schriftart zu verwenden, wird die normale Browser-Schriftart wiederhergestellt, so dass dies möglicherweise der Fall ist, aber ich bin mir nicht sicher, und selbst nach der Suche habe ich nichts gefunden. Vielen Dank!

BEARBEITEN

Es gibt verschiedene Schriftdateien, alle aus derselben Familie. Ich versuche sie alle zu laden. Die Schriftdateien sind .ttf. Ich bin sich von einem lokalen Ordner laden, und es gibt verschiedene Schriftart-Dateien, wie Lato-Black.ttf, Lato-Bold.ttf, Lato-Italic.ttfusw.

Luís Ferreira
quelle
2
Warum der abschließende Schrägstrich in der URL? Versuchen Sie, alle Dateien aus einem Verzeichnis zu laden, oder handelt es sich tatsächlich um eine Umleitung in eine einzelne Schriftartdatei?
Álvaro González
@ ÁlvaroG.Vicario Hallo, danke für deine Zeit. Ich habe die Frage bearbeitet, um sie klarer zu machen.
Luís Ferreira

Antworten:

101

In der CSS-Regel müssen Sie die Erweiterung der Datei hinzufügen. Dieses Beispiel mit der tiefstmöglichen Unterstützung:

@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 */
}

BEARBEITEN:

"Heruntergeladene Schriftart konnte nicht dekodiert werden" bedeutet, dass die Schriftart beschädigt oder unvollständig ist (fehlende Metriken, erforderliche Tabellen, Namensdatensätze, eine Million möglicher Dinge).

Manchmal wird dieses Problem durch die Schriftart selbst verursacht. Die Google-Schriftart bietet die richtige Schriftart, die Sie benötigen. Wenn jedoch eine Schriftart erforderlich ist, verwende ich Transfonter , um das gesamte Schriftformat zu generieren.

Manchmal ist es der FTP-Client, der die Datei beschädigt (in diesem Fall nicht, weil er sich auf einem lokalen PC befindet). Stellen Sie sicher, dass Sie die Datei binär und nicht in ASCII übertragen.

Germano Plebani
quelle
Ich habe meine Frage bearbeitet, um sie klarer zu machen. Ich bin nicht sicher, ob es etwas an dem ändert, was Sie gepostet haben. Entschuldigung für das Durcheinander und vielen Dank für Ihre Zeit.
Luís Ferreira
1
Sie müssen unbedingt @font face verwenden? Ich weiß, dass Lato auf Google-Schriftarten verfügbar ist. Wie auch immer, Sie können dies versuchen: 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');Dieser Code für jede Art von Schrift, normal, fett usw.
Germano Plebani
1
Am Ende habe ich die Option Google Fonts verwendet und sie funktioniert gut. Vielen Dank. Ich habe deine Antwort akzeptiert.
Luís Ferreira
9
Diese Frage trägt die Bezeichnung "Heruntergeladene Schriftart konnte nicht dekodiert werden". Die Antwort ist eine spezifische Situation und gibt nicht an, was der Fehler bedeutet.
Krii
24

In Visual Studio ist ein ähnliches Problem aufgetreten, das durch einen falschen url()Pfad zur betreffenden Schriftart verursacht wurde.

Ich habe diesen Fehler nach dem Ändern nicht mehr erhalten (zum Beispiel):

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

dazu:

@@font-face{
    font-family: "Example Font";
    src: url("../fonts/ExampleFont.eot?#iefix");
Alex
quelle
1
für mich ./ oder ../ hat nicht funktioniert, aber das Entfernen der / insgesamt funktionierte ging von /assets...zu assets...Vielen Dank!
Shereef Marzouk
21

Der Wechsel vom Format ('woff') zum Format ('font-woff') hilft mir, dieses Problem gerade jetzt zu lösen.

Ändern Sie hier einfach eine kleine Änderung von Germano Plebani Antwort

 @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 */
}

Bitte überprüfen Sie, ob Ihre Browserquellen es öffnen können und welcher Typ es ist

Fuad Husni
quelle
7
Das Font-Woff-Format ist falsch, es sollte "woff" lauten. Und damit betrachtet Chrome die woff-Schriftart als unbekanntes Format und springt zum nächstbesten Format (wahrscheinlich ttf von woff2 hier)
Arthur
Vielen Dank, mit dieser Lösung konnte ich das Problem auch mit anderen Formaten (ttf, woff2, ...) lösen.
Far
5
Leider ist diese Antwort falsch. Es ist möglicherweise unklar, was @Arthur sagt, aber wenn Sie den Namen des Schriftformats ändern, ignoriert der Browser die Schrift buchstäblich, da sie nicht als Schrift registriert wird. Wechseln Sie im Chrome-Inspektionswerkzeug (F12) zur Registerkarte Anwendung und dann zu Rahmen> Oben> Schriftarten. Wenn Sie versuchen, diese Lösung zu verwenden, werden die Schriftarten entfernt. Ich benutze selten Downvotes für SO, aber in diesem Fall macht die Antwort die Leser tatsächlich schlechter dran, weil sie vielleicht denken, sie hätten das Problem gelöst, es aber nur getarnt.
André C. Andersen
Das hat mein Problem beim Importieren von Woff-Dateien in ein Nextjs-Projekt gelöst! Vielen Dank!
Thanh-Quy Nguyen
Wie @ AndréC.Andersen sagt, BEKRÄFTIGT DIESE ANTWORT NUR DAS PROBLEM UND BEHEBT ES NICHT .
JohnK
12

Stellen Sie sicher, dass Ihr Server die Schriftdateien mit der richtigen MIME / dem richtigen Typ sendet .

Ich habe kürzlich das gleiche Problem mit Nginx, weil einige Mime-Typen in der Vanilla- /etc/nginx/mime.typesDatei fehlen .

Ich habe das Problem behoben, indem ich die fehlenden MIME-Typen an der Stelle hinzugefügt habe, an der ich sie benötigt habe:

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

Sie können dies auch überprüfen, um die Datei mime.types in nginx zu erweitern: Erweiterung der Standarddatei nginx mime.types

Matteo
quelle
12

Ich musste type="text/css"meinem Link-Tag hinzufügen . Ich habe es geändert von:

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

zu:

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

Nachdem ich es geändert hatte, verschwand der Fehler.

Nabjoern
quelle
Danke, es funktioniert. Wenn also jemand die Schriftarten von Google lädt, fügen Sie diese hinzu type="text/css"und die Warnmeldung in der Browserkonsole ist nach der 'harten' Aktualisierung
verschwunden
6

Ich hatte nur das gleiche Problem und löste es durch Ändern

src: url("Roboto-Medium-webfont.eot?#iefix")

zu

src: url("Roboto-Medium-webfont.eot?#iefix") format('embedded-opentype')
Christian Rauchenwald
quelle
6

Bei mir trat dieser Fehler auf, als ich mit https auf eine Google-Schriftart verwies. Als ich zu http wechselte, verschwand der Fehler. (und ja, ich habe es mehrmals versucht, um zu bestätigen, dass dies die Ursache war)

Also habe ich mich verändert:

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

Zu:

@import url(http://fonts.googleapis.com/css?family=Roboto:300,400,100,500,900);
Venryx
quelle
3
Ich war auch gleiche Fehler mit Google - Schriften immer, wenn ich es tat hart reload bekam das Problem automatisch gelöst!
Maulik Gangani
1
-1, sorry. man sollte dafür keine drop httpssupport verwenden! Es macht Ihre Site unsicher . @ MaulikGanganis Beobachtung funktioniert! Erwägen Sie, es in Ihre Antwort zu integrieren
Ciprian Tomoiagă
4

Manchmal tritt dieses Problem auf, wenn Sie die Schriftarten mit der falschen FTP-Methode hochladen / herunterladen. Schriftarten müssen mit der Binärmethode FTP-bearbeitet werden, nicht mit ASCII. (Abhängig von Ihrer Stimmung kann es sich nicht intuitiv anfühlen, lol). Wenn Sie die Schriftdateien mit der ASCII-Methode ftp, erhalten Sie diese Fehlermeldung. Wenn Sie Ihre Dateien mit einer 'Auto'-Methode ftp und diese Fehlermeldung erhalten, versuchen Sie, die binäre Methode durch ftp zu erzwingen.

Giuseppe
quelle
3

Ich hatte das gleiche Problem mit font awesome v4.4 und habe es behoben, indem ich das woff2-Format entfernt habe. Ich habe nur in Chrome eine Warnung erhalten.

@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;
}
Francisco Goldenstein
quelle
1
Ja! Ich habe das Format ('woff2') entfernt und die Warnungen entfernt. Vielen Dank.
duyn9uyen
3

In meinem Fall wurde es mit einer falschen Pfaddatei in .htaccess verursacht. Bitte überprüfen Sie die Richtigkeit Ihres Dateipfads.

Ebrahim
quelle
2

Für mich war der Fehler zu vergessen, FTP vor dem Hochladen der Schriftdateien in den Binärmodus zu versetzen.

Bearbeiten

Sie können dies testen, indem Sie andere Arten von Binärdaten wie Bilder hochladen. Wenn sie auch nicht angezeigt werden, liegt dies möglicherweise an Ihrem Problem.

Robert Gowland
quelle
Gibt es dafür einen anderen Begriff? Ich kann diese Option anscheinend in keinem meiner FTP-Clients finden.
Sarkom
Ich kenne die Begriffe BIN und ASCII nur von * nix-Befehlszeilenbrowsern. Ich würde annehmen, dass viele moderne FTP-Clients wissen, welche Dateien binär sind und welche nicht. Vielleicht ist es also nicht Ihr Problem. Wenn Sie testen möchten, ob Ihr FTP-Client im Binärmodus sendet, verwenden Sie FTP, um Binärdaten wie eine JPG-Datei zu verschieben, und versuchen Sie dann, sie anzuzeigen. Wenn es im ASCII-Modus gesendet wurde, wird es nicht angezeigt. (Siehe jscape.com/blog/… )
Robert Gowland
Ah, ich verstehe, danke für die Erklärung. Alle Bilder, die ich hochlade, sind in Ordnung. Ich habe schließlich den Binärmodus in FileZilla gefunden. Das hat mir leider nicht geholfen. Ich konnte in PHP Storm keine Option für Binärdateien finden, aber wie gesagt, Bilder sind in Ordnung, daher schätze ich, dass dies nicht das Problem ist, das ich habe.
Sarkom
1

Ich hatte auch das gleiche Problem, aber ich habe es gelöst, indem ich 'Content-Type' hinzugefügt habe: 'application / x-font-ttf' im Antwortheader für alle .ttf-Dateien

U_R_Naveen UR_Naveen
quelle
1
Wie macht man das ?
Baim Wrong
1

In meinem Fall wurde dies durch das Erstellen einer SVN-Patch-Datei verursacht, die das Hinzufügen der Schriftdateien umfasste. Wie so:

  1. Fügen Sie dem subversionierten Trunk Schriftdateien aus dem lokalen Dateisystem hinzu
  2. Kofferraum funktioniert wie erwartet
  3. Erstellen Sie einen SVN-Patch mit Trunk-Änderungen, um das Hinzufügen von Schriftdateien einzuschließen
  4. Wenden Sie den Patch auf einen anderen Zweig an
  5. Schriftdateien werden dem subversionierten Zweig hinzugefügt (und können festgeschrieben werden), sind jedoch beschädigt, was zu Fehlern im OP führt.

Die Lösung bestand darin, die Schriftdateien von meinem lokalen Dateisystem direkt in den Zweig hochzuladen. Ich gehe davon aus, dass dies passiert ist, weil SVN-Patch-Dateien alles in das ASCII-Format konvertieren müssen und nicht unbedingt Binärdateien für Schriftdateien beibehalten müssen. Aber das ist nur eine Vermutung.

MegaMatt
quelle
1

In meinem Fall - mit React with Gatsby - wurde das Problem behoben, indem alle meine Pfade überprüft wurden. Ich habe React / Gatsby mit Sass verwendet und die Gatsby-Quelldateien suchten die Schriftarten an einer anderen Stelle als die kompilierten Dateien. Nachdem ich die Dateien in jeden Pfad dupliziert hatte, war dieses Problem behoben.

Dave Kanter
quelle
1

In meinem Fall waren die Schriftdateien beim Herunterladen einer Vorlage nur leere Dateien. Wahrscheinlich ein Problem mit dem Download. Chrome hat diesen generischen Fehler darüber ausgegeben. Ich dachte zuerst, die Lösung des Wechsels von woffzu font-woffgelöst, aber es brachte Chrome nur dazu, die Schriftarten zu ignorieren. Meine Lösung bestand darin, die Schriftarten einzeln zu finden und herunterzuladen / zu ersetzen.

André C. Andersen
quelle
0

Wenn Sie Express verwenden, müssen Sie das Bereitstellen statischer Inhalte zulassen, indem Sie Folgendes hinzufügen: var server = express (); server.use (express.static ('./ public')); // wobei public der App-Stammordner mit den darin enthaltenen Schriftarten auf jeder Ebene ist, dh public / fonts oder public / dist / fonts ... // Wenn Sie connect verwenden, suchen Sie bei Google nach einer ähnlichen Konfiguration.

Cleophas Mashiri
quelle
0

Ich verwende .Net Framework 4.5 / IIS 7

Um das Problem zu beheben, habe ich die Datei Web.config in einen Ordner mit einer Schriftartdatei gelegt.

Inhalt von Web.config:

<?xml version="1.0"?>
<configuration>
  <system.web>
    <authorization>
      <allow users="*" />
    </authorization>
  </system.web>
</configuration>
Андрей Приймак
quelle
0

Wenn es sich auf dem Server befindet (nicht in localhost), versuchen Sie, die Schriftarten manuell hochzuladen, da manchmal der FTP-Client (z. B. FileZilla) die Dateien beschädigt und das Problem verursachen kann. Für mich habe ich manuell über die Cpanel-Oberfläche hochgeladen.

Saidmamad
quelle
0

Mein Fall sah ähnlich aus, aber die Schrift war beschädigt (und daher nicht zu dekodieren). Es wurde durch die Konfiguration in Maven verursacht. Das Hinzufügen von nonFilteredFileExtension für Font-Erweiterungen in maven-resources-pluginhat mir geholfen:

<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>
Fenix
quelle