2012-09-05 19 views
16

Pracuję nad projektem wykorzystującym JSF/Facelets. Chcę wprowadzić zmiany w CSS w widoku XHTML, ale nic się nie dzieje, gdy wdrażam moją aplikację internetową na serwerze Tomcat. Próbowałem wielu sztuczek, ale mam taki sam wynik.JSF/Facelets: Plik CSS nie jest rozpoznawany za pomocą znacznika <h: outputStylesheet>

W każdym razie, tu jest mój "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; 
} 

I to jest główny szablon "Template.html", w tym "header.html" i "footer.html", gdzie kładę " styles.css”za pomocą tagu:

<!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 wreszcie oto moja "Main.xhtml", które obejmują szablon "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> 

Z góry dziękuję :)

+1

czy możesz zweryfikować w swojej przeglądarce, czy twoje css ma b ładowane. – Abhi

+1

jak mogę to sprawdzić?! – ayoubuntu

+1

Kliknij prawym przyciskiem myszy w przeglądarce i * Wyświetl źródło * i/lub naciśnij F12 w przeglądarce Chrome/IE9/Firebug i zaznacz sekcję "Sieć". – BalusC

Odpowiedz

44

Numer <h:outputStylesheet> (i <h:outputScript>) wymaga <h:head>, ale masz tam <head>. Napraw to odpowiednio.

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

Ponadto, należy upewnić się, że plik css/styles.css jest umieszczone w /resources podfolderze WebContent publicznego.

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

Jak do próbując użyć atrybutu library, uważaj z tym, stosując library="css" nie jest całkowicie poprawna w tym kontekście. Zobacz także: What is the JSF resource library for and how should it be used?

+0

Tak, sprawdziłem to wcześniej i umieściłem plik styles.css w tej samej ścieżce, co powiedział: WebContent/resources/css/styles.css – ayoubuntu

+0

Czy przeczytałeś także pierwszą część mojej odpowiedzi? – BalusC

+0

W drzewie, nie powinno być "WebContent/resources/css/styles.css" zamiast "WebContent/resources/css/style.css"? – user454322

-3

Dodaj ZASOBY folderu pod WebContent

i wewnątrz zasobów Utwórz folder css

następnie uzyskać dostęp do plików jak to

h:outputStylesheet library="css" name="myNewStylesFile.css" target="head" pod h:head części, które nie zostały dodaj

+3

Wycofałem się, ponieważ uważam to za spam, jest taki sam jak BalusC odpowiedź z usuniętymi słowami, odpowiedziała 3 lata później. –

Powiązane problemy