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

如何为Cloud Run上带自定义上下文路径的Vaadin应用配置GCP负载均衡路径匹配

解决Vaadin静态资源在GCP负载均衡下的404问题

方案一:配置GCP负载均衡路径重写

针对Vaadin静态资源的/VAADIN/**请求,通过负载均衡的路径重写自动添加上下文前缀:

  • 进入GCP控制台的负载均衡器页面,找到对应的路径匹配器
  • 添加新规则:
    • 匹配路径:/VAADIN/**
    • 目标服务:选择你的Cloud Run应用
    • 路径重写设置:将请求路径替换为/pbuilder/VAADIN/$1($1会保留原路径中/VAADIN/之后的所有内容,比如原请求/VAADIN/css/main.css会被重写为/pbuilder/VAADIN/css/main.css)
  • 确保该规则的优先级高于默认规则,避免被其他路径规则拦截
  • 保留原有的/pbuilder/和/pbuilder/*路径规则,保证常规业务请求正常路由

方案二:修改Vaadin应用的静态资源前缀

如果负载均衡配置不便调整,可在应用端让前端直接生成带上下文前缀的资源请求:

  1. 在Spring Boot的配置文件(application.properties或application.yml)中添加:
    vaadin.frontend.url=/pbuilder/VAADIN
    
    此配置会让Vaadin生成的页面中,所有静态资源的引用路径自动带上/pbuilder前缀,负载均衡收到的请求即为/pbuilder/VAADIN/...,直接转发就能匹配应用的上下文路径。
  2. 确认server.servlet.context-path=/pbuilder配置已生效,保证应用内部所有路由和资源基于该上下文路径。

验证方式

配置完成后,打开浏览器开发者工具的网络面板,查看静态资源请求:

  • 方案一:请求路径显示为/VAADIN/...,但负载均衡已重写为带前缀的路径转发给服务
  • 方案二:请求路径直接显示为/pbuilder/VAADIN/...,无需负载均衡额外处理

内容的提问来源于stack exchange,提问作者Ben

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 18:18:35