Java FX CSS @ проблема с путём импорта
В Java8_31
Я импортировал разные CSS
такие файлы в моем main.css
:
@import "style/common/test1.css";
@import "style/common/test2.css";
Все файлы были в пакете style/common
и это сработало отлично.
Теперь со сборкой Java8_40
Я сделал то же самое, но я получаю следующее сообщение об ошибке:
Не удалось найти таблицу стилей: файл:/mypath/../style/common/style/common/test2.css com.sun.javafx.css.parser.CSSParser handleImport
Все мои стили от CSS
файл test1.css
работают. Что мне было любопытно, так это то, что мой стиль пути / общее проявляется два раза.
Поэтому я попытался изменить свой импорт следующим образом:
@import "style/common/test1.css";
@import "test2.css";
С этим импортом оба стиля файла test1
и файл test2
работают. Но оба файла все еще находятся в одном пакете.
Что тут происходит? Есть ли известная проблема с @import и, возможно, проблема в CSSParser?
2 ответа
На самом деле это известная проблема:
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. Все, что вам нужно, это указать папку .css и имя файла:
Оригинальный путь:
@import "css/nodes/path/CssFile.css";
Полный путь без указания папки:
@import "../../path/CssFile.css";
Оба работают одинаково. Обратите внимание, что во втором примере «../» относится к уровню пути, а не к конкретному имени папки.
Так что в вашем случае это будет
@import "../common/test1.css";