ADF 皮肤样式加载错误 类

ADF skin styles loading wrong classes

我有一个已部署到 EAR 文件的 ADF 应用程序。目前,同一个应用程序 运行 在 WebLogic 11g 服务器上的三个不同环境中。

但是,在第四个 (dev) 环境(全新安装的 WebLogic 11g)中,我对应用程序的某些元素进行了不同显示。

我检查了客户端收到的 HTML,问题在于 类 的名称(应该是由 ADF 自动生成)在第四个环境中是不同的(尽管事实上相同的 EAR 在服务器中 运行)。因此,某些 css 规则未应用,因为它们引用了其他 css 类.

我认为这可能是 Apache Trinidad 配置问题(也许我是从与基础皮肤不同的皮肤继承的? ),但我发现的所有配置文件都位于项目本身内部(即 trinidad-skins.xmltrinidad-config.xml, web.xml) 并且因为同一个项目在其他环境中工作,我认为这不是问题。

我的疑问是:我应该检查什么来比较新的工作环境? 什么系统配置或库可能是造成这种情况的原因?


HTML/CSS 带图片示例


工作环境(正确显示)






新环境(显示错误)

正如您在图片中注意到的,加载的 类 是不同的。由于收到的 sheet estilos_mw.css 对于两个应用程序来说完全相同,因此其规则不适用于新环境(在这种情况下,规则针对.x14m 个元素).

另一个区别是生成的 fusionFx CSS,但我不确定问题是否存在以及如何检查它。

提前致谢。

好吧,你做错了。这是自动生成的 类 并且绝对不能保证它会保持不变。

  1. 了解 skinning in ADF and use skin instead of plain css file. Actually it will look almost like css with some enchantement, however this file will be processed by skinning engine (somewhat like SASS). This way css will be generated from the skin file and your custom rules will point to the right classes. Also there are special version of jdeveloper - Skin Editor (此版本也适用于 11g),它可以帮助您开发皮肤。
  2. 您可以通过禁用内容压缩来禁用 css 类 缩小。
    为此,您需要在上下文初始化参数之后添加 (或更改) org.apache.myfaces.trinidad.DISABLE_CONTENT_COMPRESSIONtrue
    web.xml 中。这样您将获得在运行时不会更改的实际 css 类 名称。
    虽然这在开发阶段可能非常有用,但不建议在生产阶段使用环境,因为可能会导致性能问题。