我們使用了 Vaadin 14.5 并且@CssImport自定義 CSS 作業正常。現在我們想要更新,但從 14.6 開始@CssImport不再加載自定義 CSS。
我們有以下 Maven 結構:
- app-1, -2... : the apps that have common code and style
- shared : all the code and style we share between our apps
|
- src/main/java/our/package/AbstractUI.java
|
- src/main/resources/META-INF/resources/frontend/
|
- css
|
-styles.css
|
- vaadin-vertical-layout.css
在共享工件中,我們有幾個用于 Vaadin 組件的自定義 CSS 檔案,我們在其中解決了必須在 shadow DOM 中調整的 CSS:
vaadin-vertical-layout.css
/* Page */
:host(.Page) {
left: 64px;
padding-top: 2em;
position: absolute;
transition: all 0.5s ease;
width: calc(100% - 64px);
}
然后我們在 class 中加載所有這些自定義 CSS AbstractUI,這是所有其他 UI 類的超類:
@StyleSheet("./css/styles.css")
...
@CssImport(value = "./css/vaadin-vertical-layout.css", themeFor = "vaadin-vertical-layout")
@Theme(value = Material.class, variant = Material.LIGHT)
public abstract class AbstractUI extends VerticalLayout {
然后,應用程式就不必費心處理所有的注釋,只需進行擴展,AbstractUI然后加載 CSS 并將其添加到現有的 shadow DOM CSS 中即可。
這適用于 Vaadin 14 到 14.5.5,但在 14.6.0 之后不再加載自定義 CSS。該vaadin-maven-plugin(有錯誤并退出時,如果它們不存在)建立前端什么時候檢查的CSS檔案的存在,但在應用程式中的CSS只是沒有被加載。澄清一下:@StyleSheet注釋仍然有效,以便加載 CSS。
這是 Vaadin 中的錯誤還是我們錯過了一些關鍵資訊?
uj5u.com熱心網友回復:
缺少的關鍵資訊是一個名為“TinyMCE for Flow”的 Vaadin 網路組件,這就是這種行為的原因。不知道為什么破得這么厲害。解決方案是將其更新到最新版本 (3.1.1)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/378562.html
