Wie verwende ich Font Awesome 4.x CSS-Datei mit JSF? Der Browser kann keine Schriftartdateien finden

8

Ich versuche Font Awesome in JSF zu integrieren.

%Vor%

Der Browser kann die Schriftartdateien jedoch nicht finden. Sie erscheinen als leere Quadrate:

Ich habe erwartet, dass sie wie folgt aussehen:

Wie wird das verursacht und wie kann ich es lösen?

    
AHméd Net 15.07.2015, 15:36
quelle

5 Antworten

22

Die Font Awesome-CSS-Datei referenziert standardmäßig diese Font-Dateien über einen relativen Pfad ../ wie unten:

%Vor%

Dies schlägt fehl, wenn die CSS-Datei selbst auf einem anderen Pfad angefordert wird. Der JSF <h:outputStylesheet> wird das tun, wenn Sie das Attribut library angeben. Darüber hinaus wird die JSF ein spezielles /javax.faces.resource/* Präfixmuster für diese Ressourcen verwenden, so dass speziell der JSF-Ressourcen-Handler aufgerufen wird, der Anpassungsfreiheit ermöglicht. Details finden Sie in Was? ist die JSF-Ressourcenbibliothek für und wie sollte sie verwendet werden?

Wurde eine Ordnerstruktur wie unten angegeben,

%Vor%

Und das Font Awesome CSS wird wie folgt eingefügt:

%Vor%

Dann müssen Sie die CSS-Datei wie folgt bearbeiten, um #{resource} mapping in EL zu verwenden, um die Font-Dateien im /resources -Ordner mit dem entsprechenden Bibliotheks- und Ressourcennamen zu referenzieren (und als Bibliotheksname als Abfrage-String-Parameter endet) bereits müssen Sie auch ? durch & ersetzen, dies ist nicht notwendig, wenn Sie keinen Bibliotheksnamen verwenden).

%Vor%

Stellen Sie sicher, dass Sie den Server nach dem Bearbeiten der CSS-Datei neu starten. Das Vorhandensein von EL-Ausdrücken in einer bestimmten CSS-Datei wird nur einmal beim ersten Lesen des JSF-Ressourcen-Handlers in der CSS-Datei erkannt und dann anwendungsweit gespeichert.

Falls JSF1091-Warnungen in Serverprotokollen für diese Schriftartendateien wie folgt angezeigt werden:

  

WARNUNG: JSF1091: Für die Datei [einige Schriftart-Datei] konnte kein MIME-Typ gefunden werden. Um dies zu beheben, fügen Sie den Anwendungen web.xml eine MIME-Typ-Zuordnung hinzu.

Dann müssen Sie sich entsprechend verhalten, indem Sie unter web.xml :

die folgenden Mime-Zuordnungen hinzufügen %Vor%

Wenn Sie die JSF-Dienstprogrammbibliothek OmniFaces verwenden, besteht eine Alternative zum Bearbeiten der CSS-Datei mit dem #{resource} -Mapping darin, die OmniFaces zu installieren UnmappedResourceHandler und konfigurieren Sie das FacesServlet -Mapping gemäß seiner Dokumentation neu. Sie müssen nur sicherstellen, dass Sie nicht mehr über library auf die Schriftart-CSS-Datei verweisen:

%Vor%

Siehe auch:

BalusC 16.07.2015, 12:31
quelle
2

Auch primefaces>5.11 hat Font Awesome out of the box

Füge einfach context-param zu deinem web.xml hinzu:

%Vor%

Dann können Sie Font Awesome Symbole auf diese Weise anwenden:

%Vor%

Referenzen:

Jalal Sordo 01.07.2016 03:13
quelle
0

Ich habe den Pfad von oet, ttf, svg, woff Dateien in der "font-awesome.min.css" Datei wie folgt geändert:

%Vor%

es funktioniert gut für mich, aber ich suche immer noch nach einer anderen Lösung, weil ich einen dynamischen Pfad haben sollte, nicht eine statische wie "http://localhost:8080/Students_manager/..."

    
AHméd Net 16.07.2015 11:07
quelle
0

Ich habe den Pfad in "font-awesome.css" geändert und funktioniert gut

%Vor%

}

    
Andrei Lepsch 20.01.2016 13:20
quelle
0

Gleiche Antwort wie BalusC mit einigen Änderungen. Hinweis: Ich integriere Metronic Theme.

%Vor%

gilt auch für simple-line-icons.min.css

und wie BalusC gesagt hat, addiere web.xml , indem du die Zeilen in seiner Antwort hinzufügst.

    
usertest 22.08.2016 20:04
quelle

Tags und Links