Vaadin Spring-Boot 应用程序在生产模式下作为 JAR 运行时不会渲染 CSS

jam*_*mie 6 vaadin spring-boot vaadin-flow

有什么想法为什么在生产环境中发布新的 Vaadin / Spring-Boot 应用程序时,Vaadin 不会在前端目录中渲染自定义 css,尽管它在调试模式下会渲染?

该应用程序是为生产而构建的,如下所示:

mvn install -Pproduction
Run Code Online (Sandbox Code Playgroud)

然后运行生成的应用程序,如下所示:

java --enable-preview -jar target\app-1.0-SNAPSHOT.jar
Run Code Online (Sandbox Code Playgroud)

通过 JAR 文件方法运行时,CSS 未在浏览器中正确应用。其他一切都很好。

当应用程序运行时如下:

mvn spring-boot:run 
Run Code Online (Sandbox Code Playgroud)

所有页面均正确呈现。CSS 已正确加载。

在LoginView类中,CSS的导入如下:

@CssImport(value = "./views/login/login-view.css", themeFor = "vaadin-login-overlay-wrapper")
Run Code Online (Sandbox Code Playgroud)

login-view.css 文件位于 [项目目录]\frontend\views\login-view.css

当运行 mvn spring-boot:run 时,CSS 文件被正确拾取,但是,当使用 JAR 方法运行时,则不然。我不确定这是否是设计使然,但我没有看到 css 文件存储在生成的 JAR 文件中的任何位置。

为了缓解这种情况,我尝试将前端文件放在 [project dir]\src\main\resources\META-INF\frontend 中,而不是默认位置 [project dir]\frontend 中,因为我在某处读到 CssImport 在 resources\ 内部查找通过 JAR 运行时的 META-INF\frontend 文件夹。当我将文件放在这个位置时,CSS 文件会合并到 JAR 中,并且可以从 http://localhost:8080/frontend/views/login/login-view.css 进行访问,但是可惜 LoginView 页面似乎仍然不存在渲染 CSS。

该应用程序最初是使用 Vaadin 应用程序构建器构建的。pom.xml 与默认的大致相同。我正在运行 Vaadin 19.0.7。提前致谢