如何让Vaadin中自定义静态资源目录的CSS文件启用Brotli压缩?
解决Vaadin生产构建中META-INF/resources下CSS文件未被Brotli压缩的问题
Vaadin生产构建默认仅对frontend/themes目录下的资源进行压缩处理,要让src/main/resources/META-INF/resources下的CSS文件也被Brotli压缩,需通过构建工具配置扩展资源处理范围,以下分Maven和Gradle两种场景说明:
Maven项目配置
在项目pom.xml的Vaadin插件配置块中,添加资源包含规则并显式启用Brotli压缩:
<plugin> <groupId>com.vaadin</groupId> <artifactId>vaadin-maven-plugin</artifactId> <version>${vaadin.version}</version> <executions> <execution> <goals> <goal>build-frontend</goal> </goals> <phase>compile</phase> </execution> </executions> <configuration> <resourceIncludes> <include>**/META-INF/resources/**/*.css</include> </resourceIncludes> <enableBrotli>true</enableBrotli> </configuration> </plugin>
resourceIncludes指定构建工具需处理的额外资源路径,匹配所有META-INF/resources下的CSS文件enableBrotli显式开启Brotli压缩(默认可能已开启,显式配置更稳妥)
Gradle项目配置
在项目构建脚本中扩展Vaadin插件的资源处理规则:
Groovy DSL示例
vaadin { resourceIncludes.add("**/META-INF/resources/**/*.css") enableBrotli = true }
Kotlin DSL示例
vaadin { resourceIncludes.add("**/META-INF/resources/**/*.css") enableBrotli.set(true) }
验证配置生效
执行生产构建命令:
- Maven:
mvn clean package -Pproduction - Gradle:
./gradlew clean build -Pvaadin.productionMode
构建完成后,查看打包产物中META-INF/resources目录下的CSS文件,对应会生成.br后缀的Brotli压缩文件。
内容的提问来源于stack exchange,提问作者megloff
相关产品推荐
相关产品推荐

