升级Vaadin 24.0.4时遭遇line-awesome.min.css IllegalStateException异常
解决Vaadin 24.0.4升级后Line Awesome资源找不到的异常
可能的解决方案
1. 修正theme.json的assets配置
检查theme.json的assets区块,确保路径不带开头斜杠,配置如下:
{ "assets": { "imports": [ "line-awesome/dist/line-awesome/css/line-awesome.min.css" ] } }
Vaadin会自动从依赖或frontend目录匹配对应资源,开头斜杠会导致路径解析错误。
2. 改用Vaadin官方Line Awesome依赖
org.parttio的依赖可能和Vaadin 24的资源加载逻辑不兼容,替换为官方集成包:
<dependency> <groupId>com.vaadin</groupId> <artifactId>vaadin-line-awesome-flow</artifactId> <version>24.0.4</version> <!-- 与你的Vaadin版本保持一致 --> </dependency>
该依赖会自动处理资源注册,无需手动配置theme.json。
3. 重新生成开发资源包
删除src/main/dev-bundle文件夹,执行以下命令重建前端资源:
mvn vaadin:prepare-frontend mvn clean install
4. 统一Java编译环境
尝试直接使用Java 17编译运行,避免跨版本编译的兼容性问题,修改pom.xml中的编译配置:
<properties> <maven.compiler.source>17</maven.compiler.source> <maven.compiler.target>17</maven.compiler.target> </properties>
5. 检查资源引用方式
确保代码中使用正确的Vaadin资源导入方式:
- Java代码中:
@CssImport(value = "line-awesome/dist/line-awesome/css/line-awesome.min.css", themeFor = "my-app") - 主题styles.css中:
@import "line-awesome/dist/line-awesome/css/line-awesome.min.css";
问题背景
已尝试以下操作但无效:
- 执行
mvn clean install、npm install命令 - 删除
node_modules文件夹 - 清空IntelliJ缓存
手动添加了以下依赖,且已确认jar包内存在line-awesome.min.css文件:
<dependency> <groupId>org.parttio</groupId> <artifactId>line-awesome</artifactId> <version>1.1.0</version> </dependency>
启动服务器后页面加载抛出异常:
java.lang.IllegalStateException: Asset '/line-awesome/dist/line-awesome/css/line-awesome.min.css' is not found in project frontend directory, default development bundle or in the application bundle 'src/main/dev-bundle/assets/'. Verify that the asset is available in 'frontend/themes/myApplicationName/' directory and is added into the 'assets' block of the 'theme.json' file.
对比Vaadin官方Todo示例项目,theme.json等配置文件完全一致,项目已生成dev-bundle文件夹。环境信息:
- Vaadin版本:24.0.4(升级后出现异常)
- Java环境:使用Java 20编译至Java 17
内容的提问来源于stack exchange,提问作者Stephane Grenier
相关产品推荐
相关产品推荐

