html – href =“RES_NOT_FOUND”使用h:outputStylesheet

我正在使用JSF 2.0创建基于Web的多语言应用程序.

对于css早些时候我正在使用

<h:outputStylesheet library="css" name="setFontForAll.css"/>

我在CSS文件里面

font-size: #{msg['myDir'].contains('LTR')?'10pt':'14pt'};
                                           ^^^     ^^^
                                          English arabic

但是由于CSS缓存,同样的CSS文件就在那里,即使我选择阿拉伯语,我也会连续获得10pt字体.

因此我在CSS之后增加了时间.

<h:outputStylesheet library="css" name="setFontForAll.css?#{language.myTimeinMill}"/>

然而,当我使用它时,我所有的CSS都会折腾…我看到页面设置(没有调用css)

当我看到视图源时,我得到< link type =“text / css”rel =“stylesheet”href =“RES_NOT_FOUND”/>

知道我做错了什么吗?

注意:我使用的是JSF 2.0

我也在体内打印#{language.myTimeinMill},每次看到不同的时间.

解决方法

我看到的唯一方法是使用简单的< link>标签.

使用< h:outputStylesheet />是不可能的.在URL中添加参数.关于这个主题一个answer在JSF 2.0上不再起作用了:

<h:outputStylesheet target="head" name="blank.css">
    @import url('css/setFontForAll.css?version=#{language.myTimeinMill}')
</h:outputStylesheet>

它返回一条消息:

com.sun.faces.renderkit.html_basic.ScriptStyleBaseRenderer
encodeChildren INFO: outputScript with “name” attribute and nested
content. Ignoring nested content.

那就是说,我建议这个解决方案:

<link type="text/css" rel="stylesheet" href="#{request.contextpath}/resources/css/setFontForAll.css?ln=css&amp;version=#{language.myTimeinMill}" />

<ui:fragment rendered="#{msg['myDir'].contains('LTR')}">
    <link type="text/css" rel="stylesheet" href="#{request.contextpath}/resources/css/setFontOverride.css?ln=css&amp;version=#{language.myTimeinMill}" />
</ui:fragment>

相关文章

vue阻止冒泡事件 阻止点击事件的执行 &lt;div @click=&a...
尝试过使用网友说的API接口获取 找到的都是失效了 暂时就使用...
后台我拿的数据是这样的格式: [ {id:1 , parentId: 0, name:...
JAVA下载文件防重复点击,防止多次下载请求,Cookie方式快速简...
Mip是什么意思以及作用有哪些