Font-Awesome Fehler 404 bei Schriftarten


78

Ich weiß nicht, was los ist, aber in der Browserkonsole sehe ich 3 Fehler im Zusammenhang mit font-awesome

 GET http://www.desktop.just4bettors.mobi/fonts/fontawesome-webfont.woff2?v=4.3.0 
 GET http://www.desktop.just4bettors.mobi/fonts/fontawesome-webfont.woff?v=4.3.0
 GET http://www.desktop.just4bettors.mobi/fonts/fontawesome-webfont.ttf?v=4.3.0 

Ich weiß, dass es lächerlich ist, ich kann das nicht selbst herausfinden, aber alles scheint in Ordnung zu sein, in meiner index.html habe ich so etwas

<link rel="stylesheet" href="bower_components/font-awesome/css/font-awesome.css" />

und das ist alles, was ich mit der Schriftart-großartigen Sache zu tun habe. Ich überprüfe bereits den Pfad und bin damit nicht falsch.

Passiert das mit einem von euch?

Geben Sie hier die Bildbeschreibung ein

AKTUALISIEREN

Dies ist der NGINX-Teil, in den ich einige Inhalte in die Header lade

add_header Content-Security-Policy "style-src 'self' 'unsafe-inline'
https://fonts.googleapis.com
https://fonts.gstatic.com
https://themes.googleusercontent.com
https://assets.zendesk.com;
font-src 'self' https://themes.googleusercontent.com
https://fonts.gstatic.com;";

1
Haben Sie die Schriftarten auf Ihren Server hochgeladen?
Vucko

@Vucko wie soll ich das machen?
Nicht

Antworten:


80

Fügen Sie die .woff-Datei zu Ihrem Anwendungsserver-MIME-Typ (z. B. iis-> MIME-Typ) als application / font-woff hinzu


5
Ich musste zwei Einträge machen, einen für woff und einen für woff2. Lief wie am Schnürchen. Vielen Dank!
Gaʀʀʏ

139

Besser noch, fügen Sie diesen Abschnitt zu Ihrer web.config hinzu, und diese MIME-Typen werden dann automatisch zu IIS auf jedem Server hinzugefügt, auf dem Sie bereitstellen. (Das Entfernen dient dazu, einen doppelten MIME-Typfehler zu vermeiden, falls diese bereits vorhanden sind.)

  <system.webServer>
    <staticContent>
      <remove fileExtension=".woff" />
      <mimeMap fileExtension=".woff" mimeType="application/font-woff" />
      <remove fileExtension=".woff2" />
      <mimeMap fileExtension=".woff2" mimeType="font/x-woff" />
    </staticContent>  
  </system.webServer>

1
Wenn die Datei nicht dem MIME-Typ zugeordnet war, wurde in der Konsole eine Meldung über fehlende Datei angezeigt. Nach dem Hinzufügen der Definition der Dateierweiterung und des MIME-Typs wird fontawesome woff2 korrekt geladen. Vielen Dank.
Marek Bar

1
Dies ist definitiv die praktischste Lösung für Benutzer, die .NET-Webanwendungen ausführen.
DVK

1
@jhoelz Dies ist bei weitem die beste der besten Antworten für THE WEB DEVELOPER, die normalerweise keinen direkten Zugriff auf den Webserver haben! Ich danke Ihnen vielmals.
dpant

Ich hatte dieses Problem nach der Veröffentlichung in Azure. Ihre Lösung hat wie ein Zauber funktioniert. Vielen Dank.
Perozzo

Dies gilt auch für Benutzer, die Azure App Services zum Bereitstellen ihrer Front-End-Apps verwenden. Wenn Sie beispielsweise die web.configDatei Angular im Ordner / src ablegen möchten, passen Sie angular.json / angle-cli.json an, um sie "src/web.config"in ein Array von Assets einzufügen . Stellen Sie danach einfach alles wie gewohnt in Azure bereit. Solche .woff / woff2-Fehler sind verschwunden.
Hastrb

8

Ich hatte das gleiche Problem mit iis. Ich habe einen neuen MIME-Typ mit ".woff2" als Dateierweiterung und "font / x-woff" als MIME-Typ hinzugefügt und das Problem gelöst.


6

1. Gehen Sie zu IIS, suchen Sie Ihre Website, suchen Sie den MIME-Typ, klicken Sie dann auf Hinzufügen

2. Setzen Sie "woff2" auf den angehängten Dateinamen. Setzen Sie "application / font-woff" auf den Mime-Typ

3. Starten Sie Ihre Website in IIS neu


3

Die von Ihnen angegebenen URLs sind alle ungültig und verweisen nicht auf eine Ressource. Soweit einer von uns anhand Ihres Beitrags erkennen kann, existieren sie einfach nicht.

Haben Sie Ihre Dateien korrekt für die beabsichtigte Ordnerstruktur hochgeladen?


Alles war in Ordnung, bis ich mich entscheide hinzuzufügen Content-Security-Policy, siehe mein UPDATE zu der Frage bitte. Und über welche Links sprichst du?
Nicht

Wenn Sie sagen, dass diese Links //www.desktop.just4bettors.mobi/fonts/fontawesome-webfont.woff2?v=4.3.0 natürlich funktionieren, ist dies www.desktop.just4bettors.mobidie Seite, auf der ich gerade arbeite, nein, aber ich bekomme diese Links nicht für den font-fantastischen Teil.
Nicht

www.desktop.just4bettors.mobi/fonts/fontawesome-webfont.woff2?v=4.3.0 und www.desktop.just4bettors.mobi/bower_components/font-awesome/css/font-awesome.css gehen beide zu einem 404 Not Found .
Xengravity

Diese Links sind lokal, just4bettors ist die Domain, an der ich arbeite.
Nicht

3
Mein Vorschlag ist, das CDN ganz schnell zu testen, um festzustellen, ob das Problem dadurch behoben wird. Es scheint, dass Sie lokal falsch darauf verweisen. Wenn Sie also auf das CDN verweisen können und es funktioniert, wissen Sie, dass sich die lokal vorhandene Datei am falschen Ort befindet.
Xengravity

1

Ich hatte genau das gleiche Problem auf einem "cPanel Shared Host Server", der nur Apache2-Webserver zulässt. Da Platzhalter (*) mit dem Wert 'Access-Control-Allow-Origin' in den Sicherheitseinstellungen des gemeinsam genutzten Hosts nicht zulässig sind (weil: Bandbreiten- und Ressourcendiebe), musste ich einen anderen Weg finden, damit dies funktioniert.

Diese vom OP gestellte Frage schließt auf Nginx, aber die akzeptierten und am besten bewerteten Antworten scheinen für IIS zu sein. Es könnte Leute (wie mich) geben, die auf diese Frage stoßen und nach Apache2-Lösungen suchen, die sich auf CORS- "Berechtigungen" in Apache beziehen. Hier war also das Wundermittel für mich, um dieses Problem zu lösen. Ich habe oben in meinem Stammverzeichnis einer WP-Site in der .htaccess-Datei Folgendes hinzugefügt:

<IfModule mod_headers.c>
 <IfModule mod_rewrite.c>
    SetEnvIf Origin "http(s)?://(.+\.)?(othersite\.com|mywebsite\.com)(:\d{1,5})?$" CORS=$0
    Header set Access-Control-Allow-Origin "%{CORS}e" env=CORS
    Header merge  Vary "Origin"
 </IfModule>
</IfModule>

Ich wünschte, ich könnte diesen fantastischen Teil der RegEX-Magie würdigen, aber ich erkläre, wie ich diese Lösung in diesem Beitragskommentar zu einer ähnlichen Frage hier abgeleitet habe: Platzhalter-Subdomains, -Ports und -Protokolle für Zugriffskontrolle-Zulassen-Ursprung

** Offensichtlicher HINWEIS: Sie müssen den Domainnamen so ändern, dass er Ihrem eigenen entspricht. Sie können das (|) RegEx ODER entfernen und nur einen einzelnen Domänennamen verwenden, in dem ALLE Subdomänen UND der Domänenname auf Stammebene von der RegEx akzeptiert werden


1

Keine der oben genannten Lösungen hat bei mir funktioniert, außer der folgenden. Bitte fügen Sie diese Zeile nach allen 'bundles.Add'-Befehlen in Ihrer BundleConfig.cs-Datei hinzu:

BundleTable.EnableOptimizations = false;

Dies ist eine seltsame Lösung, um Woff-Mime-Fehler zu entfernen. Sie haben die Bundle-Optimierung deaktiviert.
Hastrb

Ich stimme dir zu @hastrb, es ist komisch.
Luis Gouveia

0

Gehe zu: http://fortawesome.github.io/Font-Awesome/get-started/

... verwenden Sie Bootstrap CDN, um Font Awesome mit einer einzigen Codezeile zu Ihrer Website hinzuzufügen. Sie müssen nicht einmal etwas herunterladen oder installieren! "


1
Fügen Sie eine Erklärung auch mit dem Link hinzu, den Sie geteilt haben
Sourabh Kumar Sharma

7
CDNs eignen sich normalerweise nur zum Gerüsten und Testen von Dingen. Bei der Bereitstellung in einer Produktionsumgebung ist es besser, die Dateien auf dem Webserver zu haben ODER ein eigenes CDN zu haben.
Nickvda

Auch ist dies möglicherweise keine gute Idee, wenn Sie Intranetanwendungen erstellen.
Kosherjellyfish

0

Ich hatte genau das gleiche Problem und die gleichen Fehler. Das Löschen meiner Font-Awesome-Bibliothek und das Installieren der aktuellsten Version haben das Problem behoben.


-1

Fügen Sie die .woff2 zu Ihrem Anwendungsserver-MIME-Typ (z. B. iis-> MIME-Typ) als application / font-woff hinzu

Es hat gut funktioniert für mich.

Genießen !!!

:) :)

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.