2012-09-05 38 views
16

我使用JSF/Facelets的一个项目工作的CSS文件不被使用的认可。我想在View XHTML上做一些CSS更改,但是当我在我的Tomcat服务器中部署我的Web应用程序时,什么也没有发生。我尝试了很多技巧,但我得到了相同的结果。JSF/Facelets的:<:outputStylesheet H>标签

不管怎么说,这是我的 “styles.css的”:

body { width: 750px; } 

#header 
{ 
width:    100%; 
font-size:   36px; 
font-weight:  bold; 
line-height:  48px; 
background-color: navy; 
color:    white; 
} 

#footer 
{ 
width:    100%; 
font-weight:  bold; 
background-color: navy; 
color:    white; 
} 

这是主模板 “Template.html” 包括 “header.html中” 和 “Footer.html”,在这里我把我的“ styles.css的”使用标签:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
xmlns:f="http://java.sun.com/jsf/core" 
xmlns:h="http://java.sun.com/jsf/html" 
xmlns:ui="http://java.sun.com/jsf/facelets"> 
<head> 
<h:outputStylesheet name="css/styles.css" /> 
    <!-- i've also tried this one, using the "library" attribute --> 
    <!-- 
    <h:outputStylesheet library="css" name="styles.css" /> 
    --> 
</head> 
<h:body> 
<h:panelGroup id="page" layout="block"> 

    <h:panelGroup id="header" layout="block"> 
     <ui:insert name="header"> 
      <ui:include src="Header.html" /> 
     </ui:insert> 
    </h:panelGroup> 

    <h:panelGroup id="container" layout="block"> 
     <h:panelGroup id="content" layout="block"> 
      <ui:insert name="content">CONTENT</ui:insert> 
     </h:panelGroup> 
    </h:panelGroup> 

    <h:panelGroup id="footer" layout="block"> 
     <ui:insert name="footer"> 
      <ui:include src="Footer.html" /> 
     </ui:insert> 
    </h:panelGroup> 

</h:panelGroup> 

</h:body> 
</html> 

ANF终于在这里是我的 “Main.xhtml”,其中包括模板 “Template.html”:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<ui:composition xmlns="http://www.w3.org/1999/xhtml" 
xmlns:f="http://java.sun.com/jsf/core" 
xmlns:h="http://java.sun.com/jsf/html" 
xmlns:ui="http://java.sun.com/jsf/facelets" 
xmlns:a4j="http://richfaces.org/a4j" 
xmlns:rich="http://richfaces.org/rich" template="Template.html"> 
<h:body> 
    <ui:define name="content"> 
     <h:form> 
      <h:inputText title="inputText"></h:inputText> 
      <h:commandButton value="OK"></h:commandButton> 
     </h:form> 
    </ui:define> 
</h:body> 
</ui:composition> 

在此先感谢:)

+1

可以ü请验证您的浏览器,你的CSS具有b个een加载。 – Abhi

+1

我该如何检查?! – ayoubuntu

+1

在浏览器中右键单击页面,*查看源代码*和/或在Chrome/IE9/Firebug中按F12,然后选中“网络”部分。 – BalusC

回答

44

<h:outputStylesheet>(和<h:outputScript>)需要一个<h:head>,但你有一个<head>。相应地修复它。

<h:head> 
    <h:outputStylesheet name="css/styles.css" /> 
</h:head> 

此外,你需要确保css/styles.css文件被放置在公共web内容的/resources子文件夹。

WebContent 
|-- resources 
| `-- css 
|   `-- styles.css 
: 

至于你尝试使用library属性,请谨慎使用,使用library="css"是在此方面不完全正确的。另请参见:What is the JSF resource library for and how should it be used?

+0

是的,我以前检查这一点,我已经把我的styles.css在同一路径为u说:的WebContent /资源/ CSS/Styles.css中 – ayoubuntu

+0

你也看到我的答案的第一部分? – BalusC

+0

在树中,不应该是'WebContent/resources/css/styles.css'而不是'WebContent/resources/css/style.css'? – user454322

-3

添加资源文件夹中的的WebContent下

和内部资源创建CSS文件夹

然后访问一样,你没这个

h:outputStylesheet library="css" name="myNewStylesFile.css" target="head"h:head部分文件加

+3

我downvoted,因为我认为这是垃圾邮件,这是一样的BalusC的回答3年后回答的话被删除。 –