如何使用JSF 2.0在HTML头部分输出favicon <link />?

时间:2011-06-16 14:24:39

标签: jsf resources jsf-2 favicon

使用h:outputStylesheet我可以在HTML head部分中嵌入CSS资源,但是如何为favicon图像资源构建<link>,在此示例中呈现HTML:

HTML输出:

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

图片资源位于<web>/resources/images

如果我在JSF模板中使用直接HTML代码,例如href="/resources/images/favicon.png",则找不到资源 - 导航到/resources/images/favicon.png会导致错误

  

/resources/images/favicon.png/index.jsf   找不到

(我已将index.jsf设置为web.xml中可能解释此路径的索引页面)

2 个答案:

答案 0 :(得分:10)

您的webapp显然是在非空的上下文路径上运行。前导斜杠/将您带到域根目录。使用#{request.contextPath}动态内联上下文路径。

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

(请注意,我修复了rel以使其与浏览器兼容)

答案 1 :(得分:2)

href="/resources/images/favicon.png"实际上是查找服务器http://localhost/resources/images/favicon.png的根目录,而不是在您的Web应用程序目录中。

您的href位置需要包含网络应用程序目录href="/webappname/resources/images/favicon.png" http://localhost/webappname/resources/images/favicon.png


如果.xhtml文件与资源文件夹位于同一目录中,则删除正文中的正斜杠也应该可以正常工作。 href="resources/images/favicon.png"