微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐