使用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中可能解释此路径的索引页面)
答案 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"