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.
Die Standard-CSS-Dateien von Font Awesome Verweisen Sie auf Schriftartdateien mit relativen Pfaden wie ../fonts/. Wenn Sie jedoch die CSS-Datei mit
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
Bearbeiten Sie die CSS-Datei wie folgt:
<code class="css">@font-face { font-family: 'FontAwesome'; src: url("#{resource['font-awesome:fonts/fontawesome-webfont.eot']}&v=4.3.0"); src: url("#{resource['font-awesome:fonts/fontawesome-webfont.eot']}&#iefix&v=4.3.0") format('embedded-opentype'), url("#{resource['font-awesome:fonts/fontawesome-webfont.woff2']}&v=4.3.0") format('woff2'), url("#{resource['font-awesome:fonts/fontawesome-webfont.woff']}&v=4.3.0") format('woff'), url("#{resource['font-awesome:fonts/fontawesome-webfont.ttf']}&v=4.3.0") format('truetype'), url("#{resource['font-awesome:fonts/fontawesome-webfont.svg']}&v=4.3.0#fontawesomeregular") format('svg'); font-weight: normal; font-style: normal; }</code>
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>
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>
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!