单页加载css

时间:2017-12-13 17:01:42

标签: css jsf primefaces single-page-application

是否可以通过单页加载来加载CSS?

我在我的网络应用程序中使用单页方法和JSF / Primefaces。当我更改单页时,我无法加载CSS。

请问您有什么想法吗?

编辑: 我有一个带有

的index.xhtml
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:p="http://primefaces.org/ui">

<f:view />
<h:head>
    <f:facet name="first">
        xxx
    </f:facet>
</h:head>

<h:body>
    <f:facet name="last">
        <h:outputStylesheet name="/ressources/css/default.css" />
    </f:facet>

    <!-- ...etc -->

    <p:layout fullPage="true">
        <p:layoutUnit position="center">
            <h:form id="contentForm">
                <ui:include id="spa_content" src="ressources/fragments/#{myBean.currentPage.fragment()}.xhtml" />
            </h:form>
        </p:layoutUnit>
    </p:layout>
</h:body>
</html>

您可以看到包含更新我的单页。最重要的是&#34;最后&#34;使用我的default.css

default.css:

.ui-button-text {
    background-color: green;
    color : blue;
}

我有一个托管bean:

@ManagedBean(name = "xxx")
@SessionScoped
public class MyBean extends AbstractSessionBean implements Serializable {

    public MyBean() {}

    @PostConstruct
    private void init() {}

    //...etc

}

最后,我有mySinglePage.css和片段mySinglePage.xhtml:

mySinglePage.xhtml:

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:p="http://primefaces.org/ui">

    <f:facet name="last">
        <h:outputStylesheet name="/ressources/css/mySinglePage.css" />
    </f:facet>

    <p:commandButton value="#{xxx}" action="#{xxx}"  update="xxx"/>

</ui:composition>

为了使用mySinglePage.css,您可以看到最后一个方面,但它没有工作......

mySinglePage.css:

.ui-button-text {
    background-color: red;
    color : yellow;
}

我不知道如何使用mySinglePage.css

编辑2:

如果我有这个,它可以工作,但我的同事说这不是单页:

<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:p="http://primefaces.org/ui">

<f:view />
<h:head>
    <f:facet name="first">
        xxx
    </f:facet>
</h:head>

<h:body>
    <f:facet name="last">
        <h:outputStylesheet name="/ressources/css/default.css" />
    </f:facet>

    <!-- ...etc -->

    <p:layout fullPage="true">
        <p:layoutUnit position="center">
            <ui:insert name="contenu">
                <ui:include src="/ressources/fragments/mySinglePage.xhtml" 
/>
            </ui:insert>
        </p:layoutUnit>
    </p:layout>
</h:body>
</html>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<h:html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:p="http://primefaces.org/ui">
<h:head></h:head>
<h:body>
    <ui:composition template="../../index.xhtml">
        <ui:define name="contenu">

            <f:facet name="last">
                <h:outputStylesheet name="/ressources/css/mySinglePage.css" 
/>
            </f:facet>

            <p:commandButton value="BLOP"/>

        </ui:define>
    </ui:composition>   
</h:body>
</h:html>

你知道这是一个好方法吗?

感谢。

1 个答案:

答案 0 :(得分:0)

这更像是一种检查而不是提供解决方案的建议。

我注意到你的代码的这一部分,你以不同的方式拼写资源。

<h:outputStylesheet name="/ressources/css/default.css" />

您的文件夹名为ressources吗?这可能是一个非常微妙的变化,但我认为拥有资源文件夹的正确语法可能会解决问题吗?