JSF / Facelets: файл CSS не распознается с помощью тега
Я работаю над проектом, используя JSF / Facelets. Я хочу сделать некоторые изменения CSS в моем представлении XHTML, но ничего не происходит при развертывании моего веб-приложения на сервере Tomcat. Я перепробовал много трюков, но результат тот же.
в любом случае, вот мой "стили.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;
}
и это основной шаблон " шаблон.HTML-код" в том числе "заголовок.html " и " нижний колонтитул.html", где я поместил свои " стили.УСБ" с помощью тега :
<!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>
АНФ наконец-то вот мой "Главный.xhtml", которые включают шаблон " шаблон.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>
спасибо заранее :)
2 ответов
на <h:outputStylesheet>
(и <h:outputScript>
) требует <h:head>
, но у тебя есть <head>
. Исправьте это соответствующим образом.
<h:head>
<h:outputStylesheet name="css/styles.css" />
</h:head>
Далее, вам нужно убедиться, что css/styles.css
файл помещен в /resources
подпапка публичного webcontent.
WebContent
|-- resources
| `-- css
| `-- styles.css
:
Что касается вашей попытки использовать будьте осторожны с этим, используя library="css"
не совсем корректно в данном контексте. См. также: что такое библиотека ресурсов JSF и как она должна быть используется?
добавить ресурсы под WebContent
и внутри ресурсов создайте папку css
затем получить доступ к файлам, как это
h:outputStylesheet library="css" name="myNewStylesFile.css" target="head"
под h:head
раздел, который вы не добавили