【发布时间】:2014-02-07 12:27:58
【问题描述】:
我正在使用 JSF2 和 primefaces,但无法加载 css 表。
CSS 存储在@WebContent/resources/css/style.css
xhtml:
<h:head></h:head>
<h:body>
<h:outputStylesheet name="css/styles.css" />
我尝试在 h:head 中定位 h:outputStylesheet,也尝试使用 library="css" 标记无济于事。
输出html如下:
<head>
<link type="text/css" rel="stylesheet" href="/WireTapLogSearchUtility/faces/javax.faces.resource/theme.css?ln=primefaces-home" />
<link rel="stylesheet" media="screen" type="text/css" href="/WireTapLogSearchUtility/faces/javax.faces.resource/primefaces.css?ln=primefaces&v=3.2" />
<script type="text/javascript" src="/WireTapLogSearchUtility/faces/javax.faces.resource/jquery/jquery.js?ln=primefaces&v=3.2"><!--//-->
</script><script type="text/javascript" src="/WireTapLogSearchUtility/faces/javax.faces.resource/primefaces.js?ln=primefaces&v=3.2"><!--//-->
</script><script type="text/javascript" src="/WireTapLogSearchUtility/faces/javax.faces.resource/jsf.js?ln=javax.faces"><!--//--></script>
</head>
在源上使用 ctrl+f 没有 style.css 的结果
另外,我确实在 web.xml 中有映射:
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
【问题讨论】:
-
您是否正在运行您认为正在运行的代码?清理、重建、重新部署、重新启动。
-
等等...在生成的 HTML 标记中存在那些试图保护仅在 1990 年左右存在的浏览器的过分热心的脚本 cmets,这表明您使用的是 MyFaces 而不是 Mojarra。您是否已将
javax.faces.PROJECT_STAGE上下文参数设置为Development?如果没有,那么您确实需要在每次编辑 XHTML 文件时重新启动整个服务器,因为默认情况下 MyFaces 会无限缓存已编译的 XHTML 文件。 -
嗨 BalusC 每次更新后我都会重新启动服务器。不,尽管我刚刚这样做,但我还没有将其设置为开发。我如何知道我使用的是 MyFaces 还是 Mojarra?我的审阅者告诉我从 web.xml 中删除所有对 apache MyFaces 的引用
-
JSF impl make/version 通常只是在启动期间打印到服务器日志。好吧,如果重新启动不能解决问题,那我不知道。到目前为止提供的信息中没有看到原因。
-
看,这就是你的答案。