RichFaces 4.5.15配置panelBorderRadius不生效问题咨询
RichFaces 4.5.x 皮肤panelBorderRadius参数配置不生效解决方法
- 首先验证资源压缩配置的影响
RichFaces开启资源打包压缩模式时,会直接加载预编译好的静态CSS/JS资源,不会实时读取皮肤配置文件的参数,这是配置失效的核心原因之一。先在项目web.xml中添加如下配置关闭资源优化做验证:
配置完成后重启服务、清空浏览器缓存再测试,如果参数生效,说明问题出在预编译静态资源没有同步自定义皮肤配置。<context-param> <param-name>org.richfaces.resourceOptimization.enabled</param-name> <param-value>false</param-value> </context-param> <context-param> <param-name>org.richfaces.resourceMapping.enabled</param-name> <param-value>false</param-value> </context-param> - 纠正自定义皮肤的配置方式
直接修改jar包内的classic皮肤配置文件不会生效,因为RichFaces的CSS是构建阶段通过ECSS模板结合皮肤参数生成的,手动替换properties文件不会触发CSS重新编译。正确的自定义皮肤配置流程:- 在项目源码的
META-INF/skins/目录下新建自定义皮肤属性文件,例如命名为custom.skin.properties,在文件内指定继承的基础皮肤和自定义参数:baseSkin=classic panelBorderRadius=5px - 在
web.xml中明确指定启用自定义皮肤,避免沿用默认的classic皮肤:<context-param> <param-name>org.richfaces.skin</param-name> <param-value>custom</param-value> </context-param> - 检查项目中是否配置了
org.richfaces.baseSkin上下文参数,该参数优先级高于皮肤文件内的baseSkin配置,会直接覆盖自定义设置。
- 在项目源码的
- 生产环境开启资源压缩的正确配置方式
如果生产环境需要开启资源压缩打包,不要手动解压修改richfaces-core.jar重打包,需要在项目构建阶段引入RichFaces资源优化Maven插件,将自定义皮肤文件作为项目资源传入,在构建时重新编译ECSS模板、生成包含自定义参数的压缩版CSS/JS资源包,替换默认的静态资源后,皮肤参数才会在压缩资源模式下生效。 - 最后做兜底校验
清空应用服务器work目录下的临时缓存、浏览器本地缓存,RichFaces静态资源默认缓存周期较长,缓存未清理时会持续加载旧版本资源导致配置不生效;同时排查项目依赖树,确认没有引入多个版本的RichFaces相关jar包,依赖冲突会导致皮肤参数读取逻辑异常。
内容的提问来源于stack exchange,提问作者Edilmar Alves
相关产品推荐
相关产品推荐

