Heim >Web-Frontend >CSS-Tutorial >Wie verwende ich Font Awesome-Symbole von webjars.org in einer JSF-Anwendung ohne Abhängigkeit von einem externen Server?

Wie verwende ich Font Awesome-Symbole von webjars.org in einer JSF-Anwendung ohne Abhängigkeit von einem externen Server?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-10 15:34:02568Durchsuche

How to Use Font Awesome Icons from webjars.org in a JSF Application Without External Server Reliance?

Verwendung von Font Awesome von webjars.org mit JSF

Einführung
Integration von Font Awesome-Symbolen in Ihr JSF Die Anwendung kann ihre visuelle Attraktivität verbessern und das Benutzererlebnis verbessern. Es ist jedoch nicht ideal, sich für diese Ressourcen auf externe Server zu verlassen. In diesem Artikel wird eine Lösung untersucht, die das Webjars-Projekt verwendet, um die erforderlichen Ressourcen in Ihrer WAR-Datei zu bündeln.

Problem
Verwendung des folgenden Codes zum Einbinden von Font Awesome:

<h:outputStylesheet library="webjars" name="font-awesome/3.2.1/css/font-awesome.css"  />

führte zu fehlerhaften Symbolen und Konsolenfehlern, die darauf hinweisen, dass die Schriftarten nicht in den angegebenen Pfaden gefunden wurden:

GET http://DOMAIN:PORT/CONTEXT-ROOT/javax.faces.resource/font-awesome/3.2.1/font/fontawesome-webfont.woff?v=3.2.1 404 (Not Found)
...

Lösung
Das Problem liegt in der fehlenden JSF-Zuordnung und Bibliotheksnamen in den Ressourcen-URLs. Um dieses Problem zu beheben, verwenden Sie den Ausdruck #{resource} in der CSS-Datei, um die richtigen JSF-Ressourcen-URLs zu generieren:

src: url("#{resource['webjars:font-awesome/3.2.1/font/fontawesome-webfont.eot']}&amp;v=3.2.1");
...

Da dies jedoch die Bearbeitung des Quellcodes erfordert, besteht eine alternative Lösung darin, die OmniFaces-Bibliothek zu verwenden UnmappedResourceHandler:

  1. OmniFaces installieren (z. B. mit Maven)
  2. UnmappedResourceHandler in faces-config.xml registrieren:
<application>
    <resource-handler>org.omnifaces.resourcehandler.UnmappedResourceHandler</resource-handler>
</application>
  1. Hinzufügen /javax.faces.resource/* zu FacesServlet-Zuordnung:
<servlet-mapping>
    <servlet-name>facesServlet</servlet-name>
    <url-pattern>/javax.faces.resource/*</url-pattern>
    <url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
  1. Verschieben Sie den Bibliotheksnamen in den Ressourcennamen im tag:
<h:outputStylesheet name="webjars/font-awesome/3.2.1/css/font-awesome.css" />

Wenn Sie diese Schritte befolgen, sollten die Font Awesome-Symbole jetzt in Ihrer JSF-Anwendung korrekt dargestellt werden, ohne dass Sie auf externe Server angewiesen sind.

Das obige ist der detaillierte Inhalt vonWie verwende ich Font Awesome-Symbole von webjars.org in einer JSF-Anwendung ohne Abhängigkeit von einem externen Server?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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