【问题标题】:How to prevent loading PrimeFaces theme.css in h:head如何防止在 h:head 中加载 PrimeFaces theme.css
【发布时间】:2012-09-08 13:28:46
【问题描述】:

我使用 PrimeFaces 作为主要的 JSF 组件库。但我只需要在一个网页上。其他网页不使用 PrimeFaces 库。我正在使用模板,这是模板的一部分:

<?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">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:fn="http://java.sun.com/jsp/jstl/functions">  
<h:head>
    <f:facet name="first">
        <title>
            <ui:insert name="titleOfPage">Insert title</ui:insert>
        </title>
    </f:facet>
    <h:outputStylesheet name="basic.css" library="css" />
    <h:outputStylesheet name="template.css" library="css" />
    <f:facet name="last">
        <ui:insert name="scriptOfPage" />
        <h:outputScript name="mainScript.js" library="javascript" />
        <ui:insert name="styleOfPage" />
    </f:facet>
</h:head>   
<h:body>

我发现定义了 h:head 后,它会自动加载 PrimeFaces theme.css。加载页面的源码部分是这样的:

<link href="/javax.faces.resource/theme.css.xhtml?ln=primefaces-aristo" rel="stylesheet" type="text/css">

我没有在模板或页面中使用任何实现模板的primefaces。但是 h:head 仍然会加载 theme.cs。是否可以仅在需要时加载此主题?

【问题讨论】:

    标签: primefaces


    【解决方案1】:

    您可以阻止在 web.xml 中加载主题:

    <context-param>
        <param-name>primefaces.THEME</param-name>
        <param-value>none</param-value>
    </context-param>
    

    在您想要主题的网站上,只需添加 css:

    <link href="/javax.faces.resource/theme.css.xhtml?ln=primefaces-aristo" rel="stylesheet" type="text/css"/>
    

    【讨论】:

    • 谢谢它的工作。也许你也知道如何防止加载 Primefaces JQuery?
    • 据我所知 - 如果您不在页面上使用 primefaces.js、primefaces.css 和 jquery.js,则不会加载它。刚刚用 primefaces 3.4 和一个简单的页面试了一下,就是这样。
    • 是的,我使用的是 3.3.1,只是注意到他们发布了 3.4。会尝试,但据我了解,当您使用 h:head 时,它会为您的自定义 JSF 库加载资源。
    【解决方案2】:

    也许会覆盖头部渲染器? 我只会删除对其进行编码的部分,然后在一页上手动进行。

    我可以想到许多其他方法来做到这一点,如果您需要更具体的帮助,请告诉我。

    我觉得你可以用这个http://code.google.com/p/primefaces-extensions/source/browse/primefaces-extensions/trunk/src/main/java/org/primefaces/extensions/component/head/HeadRenderer.java?r=1353

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-23
      • 2015-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-11
      • 1970-01-01
      相关资源
      最近更新 更多