Vaadin Flow前端应用部署至Jelastic服务器遇URL未找到问题求助
Vaadin Flow 前端应用部署排查修复方案
核心问题定位
你遇到的"Requested URL was not found"错误,本质是Jelastic服务器的静态资源路由规则未匹配Vaadin前端文件,或是部署路径配置错误导致资源无法被访问。
具体排查&修复步骤
修正部署路径
- Jelastic静态站点默认根目录为
/wwwroot,需将VAADIN/Webapp下的所有文件(而非整个Webapp文件夹)直接上传到/wwwroot,确保index.html处于/wwwroot/index.html位置,而非子目录中。 - 核对Jelastic站点配置,确认文档根目录指向你上传文件的目录(通常默认是
/wwwroot,若自定义过需修正)。
- Jelastic静态站点默认根目录为
确认生产构建完整性
- 本地执行完整生产构建命令:
# Maven项目 mvn clean package -Pproduction # Gradle项目 ./gradlew clean build -Pvaadin.productionMode - 检查
target/classes/META-INF/VAADIN/Webapp目录,确保包含index.html、frontend/、build/核心文件/目录,且index.html中资源引用为相对路径(如./build/vaadin-bundle-xxx.js),避免绝对路径导致的访问错误。
- 本地执行完整生产构建命令:
配置路由重写规则
Vaadin Flow是单页应用,需将非静态资源请求转发到index.html,根据Jelastic使用的Web服务器类型配置:- Apache环境:在站点根目录创建
.htaccess文件,添加规则:RewriteEngine On # 排除已存在的静态资源 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # 转发所有其他请求到index.html RewriteRule ^(.*)$ index.html [L] - Nginx环境:修改Nginx配置文件,添加:
location / { try_files $uri $uri/ /index.html; }
- Apache环境:在站点根目录创建
核对offline-stub.html配置
Vaadin生产模式会自动生成offline-stub.html,无需手动添加。若已手动添加,需确保它与index.html处于同一目录,且index.html中无错误引用该文件。验证端口与访问路径
- 确认Jelastic站点监听端口为80/443(默认端口),访问URL无多余子路径。例如若文件在
/wwwroot,访问地址应为http://你的域名/,而非http://你的域名/Webapp/。
- 确认Jelastic站点监听端口为80/443(默认端口),访问URL无多余子路径。例如若文件在
验证流程
完成配置后重启Jelastic Web服务,依次验证:
- 直接访问
http://你的域名/index.html,确认页面能正常加载 - 访问应用路由路径(如
http://你的域名/dashboard),验证路由重写是否生效
内容的提问来源于stack exchange,提问作者Harold Alexander
相关产品推荐
相关产品推荐

