2014-11-11 5 views
1

Я не могу импортировать пользовательские шрифты в мои страницы JSF. Структура проекта выглядит следующим образом: Project structure screenshotИмпорт пользовательских шрифтов в JSF

Я попытался написать в моем styles.css:

@font-face { 
    font-family: "Gotham Pro Bold"; 
    src: url('#{resource["fonts/GothaProBol.otf"]}'); 
} 

Но это не работает. Он компилируется до /javax.faces.resource/fonts/GothaProBol.otf.xhtml, но шрифт не находится в javax.faces.resource, и я понятия не имею, почему он добавляет .xhtml.

Следующая:

src: url("#{facesContext.externalContext.requestContextPath}/resources/fonts/GothaProBol.otf"); 

компилируется

src: url("/resources/fonts/GothaProBol.otf"); 

но он не работает.

Как правильно импортировать шрифты?

Заранее спасибо.

+1

подобный вопрос здесь [JSF2 добавить пользовательские font to css stylesheet] (http://stackoverflow.com/questions/9700341/jsf2-add-custom-font-to -css-таблица стилей) –

ответ

2

сделал это с помощью OmniFaces:

  1. Добавлена ​​dependency (pom.xml):

    <dependency> <groupId>org.omnifaces</groupId> <artifactId>omnifaces</artifactId> <version>1.8.1</version> </dependency>

  2. Добавлена ​​OmniFaces' обработчик ресурсов для faces-config.xml:

    <application> <resource-handler> org.omnifaces.resourcehandler.UnmappedResourceHandler </resource-handler> </application>

  3. Подключенные /javax.faces.resource/* в FacesServlet следующим образом (web.xml):

    <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>/javax.faces.resource/*</url-pattern> <url-pattern>*.xhtml</url-pattern> </servlet-mapping>

  4. Используется #{resource["<path>"]} в CSS, например так:

    @font-face { font-family: "Gotham Pro Bold"; src: url('#{resource["fonts/GothaProBol.otf"]}'); }

Смежные вопросы