Как я могу вывести значок <link>в разделе заголовка HTML, используя JSF 2.0? - PullRequest
7 голосов
/ 16 июня 2011

Используя h: outputStylesheet, я могу встраивать CSS-ресурсы в раздел HTML-заголовка, но как мне создать <link> для favicon ресурса изображения, который отображает HTML, как в этом примере:

Вывод HTML:

<head>
... 
<link rel="icon" type="image/png" href="favicon.png" />
...
</head>

Ресурс изображения находится в <web>/resources/images.

Если я использую прямой HTML-код в шаблоне JSF, например href="/resources/images/favicon.png", ресурс не найден -переход к /resources/images/favicon.png приводит к ошибке

/ resources / images / favicon.png / index.jsf не найден

(я установилindex.jsf как страница индекса в web.xml, которая может объяснить этот путь)

Ответы [ 2 ]

10 голосов
/ 16 июня 2011

Ваше веб-приложение работает по непустому контекстному пути. Начальная косая черта / приводит вас к корню домена. Используйте #{request.contextPath} для динамического встраивания пути к контексту.

<link rel="shortcut icon" type="image/png" href="#{request.contextPath}/resources/images/favicon.png" />

(обратите внимание, что я также исправил rel, чтобы сделать его совместимым с браузерами)

2 голосов
/ 16 июня 2011

href="/resources/images/favicon.png" фактически ищет в корневой директории вашего сервера http://localhost/resources/images/favicon.png, а не в каталоге вашего веб-приложения.

Ваше местоположение в href должно включать каталог веб-приложения href="/webappname/resources/images/favicon.png" http://localhost/webappname/resources/images/favicon.png


Если ваш файл .xhtml находится в том же каталоге, что и папка ресурсов, тогда удаление косой черты в существе также должно работать. href="resources/images/favicon.png"

...