订购<h:outputstylesheet>和<link rel =“stylesheet”/> swapped </h:outputstylesheet>

时间:2014-10-02 22:23:10

标签: jsf facelets jsf-2.2 stylesheet-link-tag

在我的JSF 2.2 Facelet中,我有以下代码:

<html  ... >
  <f:view>
    <h:head>  
       <h:outputStylesheet name="bootstrap-lib/css/bootstrap.css" />
       <h:outputStylesheet library="jquery-ui" name="css/jquery-ui.css" />
       <link rel="stylesheet" type="text/css" href="url.to.css" />
      ...
    </h:head>
    ...
  </f:view>
</html> 

然而输出:

<html ...>
  <head>
    ...
    <link rel="stylesheet" type="text/css" href="url.to.css" />
    <link type="text/css" rel="stylesheet" href=".../javax.faces.resource/bootstrap-lib/css/bootstrap.css.xhtml?con=bootstrap" />
    <link type="text/css" rel="stylesheet" href=".../javax.faces.resource/css/jquery-ui.css.xhtml?ln=jquery-ui&amp;con=bootstrap" />
    ...
  </head>
  ...
</html>

将忽略link和outputStylesheet中定义的样式表的排序,并且'outputStyleSheet'样式表始终位于最后。

我需要使用'link'tag定义的“url.to.css”样式表作为列表中的最后一个,因此它将占主导地位。我怎样才能解决这个问题?

1 个答案:

答案 0 :(得分:3)

已修复@import

<强>的facelet

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

<强> all.css

@import url("#{resource['bootstrap-lib/css/bootstrap.css']}");
@import url("#{resource['jquery-ui:css/jquery-ui.css']}");
@import url("url.to.css");