>웹 프론트엔드 >CSS 튜토리얼 >외부 서버에 의존하지 않고 JSF 애플리케이션에서 webjars.org의 Font Awesome 아이콘을 사용하는 방법은 무엇입니까?

외부 서버에 의존하지 않고 JSF 애플리케이션에서 webjars.org의 Font Awesome 아이콘을 사용하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-10 15:34:02574검색

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

JSF와 함께 webjars.org의 Font Awesome 사용

소개
JSF에 Font Awesome 아이콘 통합 애플리케이션은 시각적 매력을 강화하고 사용자 경험을 향상시킬 수 있습니다. 그러나 이러한 리소스를 외부 서버에 의존하는 것은 이상적이지 않습니다. 이 기사에서는 webjars 프로젝트를 사용하여 WAR 파일 내에 필요한 리소스를 묶는 솔루션을 살펴봅니다.

문제
다음 코드를 사용하여 Font Awesome을 포함합니다.

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

지정된 위치에서 글꼴을 찾을 수 없다는 아이콘과 콘솔 오류가 발생했습니다. 경로:

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. /javax.faces.resource/*를 FacesServlet 매핑에 추가:
<servlet-mapping>
    <servlet-name>facesServlet</servlet-name>
    <url-pattern>/javax.faces.resource/*</url-pattern>
    <url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
  1. 도서관 이름을 다음으로 옮깁니다. 태그:
<h:outputStylesheet name="webjars/font-awesome/3.2.1/css/font-awesome.css" />

이러한 단계를 따르면 이제 외부 서버에 의존할 필요 없이 Font Awesome 아이콘이 JSF 애플리케이션 내에서 올바르게 렌더링됩니다.

위 내용은 외부 서버에 의존하지 않고 JSF 애플리케이션에서 webjars.org의 Font Awesome 아이콘을 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.