Heim > Web-Frontend > CSS-Tutorial > Wie integriere ich Font Awesome in JSF und behebe Probleme mit Schriftartdateien?

Wie integriere ich Font Awesome in JSF und behebe Probleme mit Schriftartdateien?

DDD
Freigeben: 2024-10-29 13:08:02
Original
253 Leute haben es durchsucht

How to Integrate Font Awesome with JSF and Resolve Font File Issues?

Integration von Font Awesome in JSF: Beheben von Problemen mit Schriftartdateien

Bei der Integration von Font Awesome in JSF kann es zu einem Problem kommen, bei dem der Browser leere Quadrate anstelle von Symbolen anzeigt. Dieser Fehler tritt auf, wenn die CSS-Datei auf Schriftartdateien mit relativen Pfaden verweist, die aufgrund des geänderten Pfads, den JSF für die Ressourcenverwaltung verwendet, nicht aufgelöst werden können.

Verstehen des Problems

Die Standard-CSS-Dateien von Font Awesome Verweisen Sie auf Schriftartdateien mit relativen Pfaden wie ../fonts/. Wenn Sie jedoch die CSS-Datei mit in JSF einbinden, weist JSF eine spezielle /javax.faces.resource zu /* Präfix für die Ressource zum Aufrufen des JSF-Ressourcenhandlers.

Lösung: Ändern der CSS-Referenzen

Um das Problem zu beheben, müssen Sie die CSS-Datei bearbeiten und die relativen Schriftartdateireferenzen ersetzen mit absoluten Referenzen unter Verwendung der #{resource} EL-Zuordnung und entsprechenden Bibliotheks- und Ressourcennamen. Zum Beispiel in einer Struktur wie:

WebContent
 |-- resources
 |    `-- font-awesome
 |         |-- css
 |         |    |-- font-awesome.css
 |         |    `-- font-awesome.min.css
 |         `-- fonts
 |              |-- fontawesome-webfont.eot
 |              |-- fontawesome-webfont.svg
 |              |-- fontawesome-webfont.ttf
 |              |-- fontawesome-webfont.woff
 |              `-- fontawesome-webfont.woff2
Nach dem Login kopieren

Bearbeiten Sie die CSS-Datei wie folgt:

<code class="css">@font-face {
  font-family: 'FontAwesome';
  src: url("#{resource['font-awesome:fonts/fontawesome-webfont.eot']}&amp;v=4.3.0");
  src: url("#{resource['font-awesome:fonts/fontawesome-webfont.eot']}&amp;#iefix&amp;v=4.3.0") format('embedded-opentype'),
       url("#{resource['font-awesome:fonts/fontawesome-webfont.woff2']}&amp;v=4.3.0") format('woff2'),
       url("#{resource['font-awesome:fonts/fontawesome-webfont.woff']}&amp;v=4.3.0") format('woff'),
       url("#{resource['font-awesome:fonts/fontawesome-webfont.ttf']}&amp;v=4.3.0") format('truetype'),
       url("#{resource['font-awesome:fonts/fontawesome-webfont.svg']}&amp;v=4.3.0#fontawesomeregular") format('svg');
  font-weight: normal;
  font-style: normal;
}</code>
Nach dem Login kopieren

Mime-Typzuordnungen und JSF1091-Warnungen

Sie können auch auf JSF1091 stoßen Warnungen, wenn bestimmte Dateitypen keine MIME-Typzuordnungen haben. Zum Beispiel SVG- und WOFF2-Dateien. Um dieses Problem zu beheben, fügen Sie die folgenden Mime-Zuordnungen zu web.xml hinzu:

<code class="xml"><mime-mapping>
    <extension>eot</extension>
    <mime-type>application/vnd.ms-fontobject</mime-type>
</mime-mapping>
<mime-mapping>
    <extension>otf</extension>
    <mime-type>font/opentype</mime-type>
</mime-mapping>
<mime-mapping>
    <extension>svg</extension>
    <mime-type>image/svg+xml</mime-type>
</mime-mapping>
<mime-mapping>
    <extension>ttf</extension>
    <mime-type>application/x-font-ttf</mime-type>
</mime-mapping>
<mime-mapping>
    <extension>woff</extension>
    <mime-type>application/x-font-woff</mime-type>
</mime-mapping>
<mime-mapping>
    <extension>woff2</extension>
    <mime-type>application/x-font-woff2</mime-type>
</mime-mapping></code>
Nach dem Login kopieren

Alternativer Ansatz mit OmniFaces

Wenn Sie OmniFaces verwenden, können Sie den OmniFaces UnmappedResourceHandler installieren und das FacesServlet neu konfigurieren Mapping, um fehlende MIME-Typzuordnungen automatisch zu verarbeiten. In diesem Fall müssen Sie jedoch auf die Schriftart-CSS-Datei verweisen, ohne das Bibliotheksattribut zu verwenden:

<code class="xml"><h:outputStylesheet name="font-awesome/css/font-awesome.min.css" / ></code>
Nach dem Login kopieren

Zusätzliche Ressourcen

  • [So verwenden Sie Font Awesome von webjars.org mit JSF](https://stackoverflow.com/questions/21419280/how-to-use-font-awesome-from-webjars-org-with-jsf)

Das obige ist der detaillierte Inhalt vonWie integriere ich Font Awesome in JSF und behebe Probleme mit Schriftartdateien?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage