Vaadin14自定义主题类无法加载自定义主题与Lumo样式如何解决
修正方案如下:
1. 调整@Theme注解配置
原来基于themeFolder的静态主题配置和自定义主题类的用法冲突,需将启动类/配置类上的@Theme注解修改为绑定自定义主题类:
// 替换原有@Theme(themeFolder = "basetheme") @Theme(value = BaseTheme.class)
2. 修正自定义主题类实现
你当前直接实现AbstractTheme接口会缺失Lumo默认样式的继承,且返回的资源路径格式错误,修改后的代码示例:
// 继承Lumo而非直接实现AbstractTheme,复用Lumo基础样式 public class BaseTheme extends Lumo { @Override public String getThemeUrl() { // 路径不要带开头斜杠,匹配jar包内资源目录 return "themes/basetheme/"; } // 不需要重写getBaseUrl,父类Lumo已处理基础样式路径 }
3. 校验jar包资源目录结构
确保你打包的jar内,自定义主题的所有资源存放在如下路径:META-INF/resources/themes/basetheme/
路径需和getThemeUrl返回值完全匹配,否则资源会加载失败。
4. 检查pom依赖与插件配置
- 确认依赖中已包含
vaadin-lumo-theme对应版本的依赖 - 确认
vaadin-maven-plugin配置中没有禁用主题自动扫描的相关参数
内容的提问来源于stack exchange,提问作者Olejon
相关产品推荐
相关产品推荐

