在Java8_31
中,我导入了不同的CSS
文件,就像我的main.css
中的文件一样:
@import "style/common/test1.css";
@import "style/common/test2.css";
所有文件都在 style/common
包中,并且效果很好。
现在使用构建 Java8_40
我做了同样的事情,但收到以下错误消息:
Could not find stylesheet: file:/mypath/../style/common/style/common/test2.css com.sun.javafx.css.parser.CSSParser handleImport
CSS
文件 test1.css
中的所有样式都可以正常工作。我很好奇的是我的路径样式/公共(public)出现了两次。
所以我尝试将导入更改为以下内容:
@import "style/common/test1.css";
@import "test2.css";
通过这些导入,文件 test1
和文件 test2
的两种样式都可以工作。但这两个文件仍然在同一个包中。
这里发生了什么?是否存在关于 @import 的已知问题以及 CSSParser 中可能存在的问题?
最佳答案
这实际上是一个已知问题:
https://javafx-jira.kenai.com/browse/RT-40346
有一个临时修复程序可用,该问题应该会在下一个版本 Java8_u60 中得到解决。
可以在 CSSParser
类中进行临时修复。链接到 git diff:
http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/839912277bf0
如果您不想尝试修复或等待 u60,只需将所有 css 文件添加到同一文件夹中并像这样导入(临时解决方案!):
@import "css/test1.css";
@import "test2.css";
@import "test3.css";
@import "testX.css";
关于css - Java FX CSS @import 路径问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29493147/