Css <--[如果IE]>;条件注释在Facelets中呈现为HTML转义

Css <--[如果IE]>;条件注释在Facelets中呈现为HTML转义,css,internet-explorer,jsf,facelets,conditional-comments,Css,Internet Explorer,Jsf,Facelets,Conditional Comments,我正在尝试使用IE条件注释来声明CSS资源: <h:outputStylesheet name="common.css" library="css" /> <!--[if IE]> <link rel="stylesheet" type="text/css" href="#{resource['css:ie.css']}" /> <![endif]--> 然而,这似乎不起作用。我在生成的HTML输出中看到了这一点: &l

我正在尝试使用IE条件注释来声明CSS资源:

<h:outputStylesheet name="common.css" library="css" />
<!--[if IE]>
    <link rel="stylesheet" type="text/css" href="#{resource['css:ie.css']}" />   
<![endif]-->    

然而,这似乎不起作用。我在生成的HTML输出中看到了这一点:

<link type="text/css" rel="stylesheet" href="/context/faces/javax.faces.resource/common.css?ln=css" />        
<!--[if IE]&gt;
    &lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/context/faces/javax.faces.resource/ie.css?ln=css&quot;/&gt;
&lt;![endif]-->


它在没有条件注释的情况下运行良好。我没有使用上下文参数。这是如何造成的,我如何解决它?

这确实不起作用,因为Facelets隐式地将HTML转义到注释的内容中。您最好将其放入
中,如下所示:


然而,这是一条丑陋的路线。有一个明确的目的:

<o:conditionalComment if="IE">
    <link rel="stylesheet" type="text/css" href="#{resource['css:ie.css']}" />   
</o:conditionalComment>
我建议



因此,您只需转义一小段代码,#{request.contextPath}就能按预期工作

它是否存在于生成的HTML中?在浏览器中打开页面,右键单击并查看Source.nope,这很奇怪,我在IE或FireFox中都找不到它。outputText解决方案工作得很好,但param解决方案仍然不工作,我不知道为什么。
<h:outputStylesheet name="css/common.css" />
<o:conditionalComment if="IE">
    <link rel="stylesheet" type="text/css" href="#{resource['css/ie.css']}" />   
</o:conditionalComment>