You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot应用中如何静态访问Vaadin /frontend资源?

Vaadin Flow中静态访问/frontend/styles下样式文件的方法

问题描述

Vaadin Flow示例规定样式文件应放置于/frontend/styles目录,该目录下的文件可在Vaadin视图/组件中导入,但我还需静态访问其中部分文件。请问访问这些样式文件的正确Web URL是什么?或者是否无法实现?
我尝试了以下URL,但均无效:

  • http://host/styles
  • http://host/frontend/styles
    我了解/src/main/resources/META-INF/resources目录也可提供静态资源,但我希望避免同一文件存在多份副本。
    补充说明:我要打印的页面是纯HTML页面,通过JS弹窗渲染:
var a = window.open('', '', 'height=1000, width=1500');
a.document.write('<html>...</html>');

该HTML页面包含指向CSS的链接标签:

<link type="text/css" rel="stylesheet" href="/styles/print.css" />

解决方案

  • 直接使用编译后路径:Vaadin在构建时会把/frontend目录下的资源处理后放到/VAADIN/build/frontend/路径下,所以你需要的print.css对应的可访问URL是/VAADIN/build/frontend/styles/print.css,把HTML里的链接标签href替换成这个路径即可正常访问。
  • 自动同步避免文件重复:如果偏好使用/styles/print.css这种简洁路径,可通过构建工具配置自动同步文件:
    • Maven:配置maven-resources-plugin,添加复制规则,将/frontend/styles下指定文件同步到/src/main/resources/META-INF/resources/styles目录,构建时自动执行,无需手动复制。
    • Gradle:编写copy任务,实现相同的文件同步逻辑,让源文件仅在/frontend/styles维护,静态访问目录自动获取最新文件。

内容的提问来源于stack exchange,提问作者The Shoe Shiner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 15:12:40