ホームページ >ウェブフロントエンド >CSSチュートリアル >外部サーバーに依存せずに JSF アプリケーションで webjars.org の Font Awesome アイコンを使用するにはどうすればよいですか?

外部サーバーに依存せずに JSF アプリケーションで webjars.org の Font Awesome アイコンを使用するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-10 15:34:02575ブラウズ

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

Webjars.org の Font Awesome を JSF で使用する

概要
Font Awesome アイコンを JSF に統合するアプリケーションは、視覚的な魅力を高め、ユーザーエクスペリエンスを向上させることができます。ただし、これらのリソースを外部サーバーに依存するのは理想的ではありません。この記事では、Webjars プロジェクトを使用して WAR ファイル内に必要なリソースをバンドルする解決策について説明します。

問題
次のコードを使用して Font Awesome を含めます:

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

壊れたアイコンと、指定された場所にフォントが見つからないことを示すコンソールエラーが発生しましたpaths:

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)
...

解決策
問題は、リソース URL に JSF マッピングとライブラリ名が欠落していることにあります。これを解決するには、CSS ファイルで #{resource} 式を使用して適切な JSF リソース URL を生成します。

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

ただし、これにはソース コードの編集が必要となるため、別の解決策は OmniFaces ライブラリの利用です。 UnmappedResourceHandler:

  1. OmniFaces をインストールします (例: Maven)
  2. faces-config.xml に UnmappedResourceHandler を登録します:
<application>
    <resource-handler>org.omnifaces.resourcehandler.UnmappedResourceHandler</resource-handler>
</application>
  1. FacesServlet マッピングに /javax.faces.resource/* を追加します:
<servlet-mapping>
    <servlet-name>facesServlet</servlet-name>
    <url-pattern>/javax.faces.resource/*</url-pattern>
    <url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
  1. ライブラリ名をリソースに移動します の名前tag:
<h:outputStylesheet name="webjars/font-awesome/3.2.1/css/font-awesome.css" />

これらの手順に従うことで、外部サーバーに依存する必要がなく、Font Awesome アイコンが JSF アプリケーション内で正しくレンダリングされるようになります。

以上が外部サーバーに依存せずに JSF アプリケーションで webjars.org の Font Awesome アイコンを使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。