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

自建Flet Web应用卡在‘请等待应用启动’状态的原因排查

Flet Web应用卡在启动状态的排查与解决

问题原因分析

  1. name参数配置错误:代码中DEFAULT_FLET_PATH设置为'http:/ip/',但Flet的ft.app()方法的name参数仅用于指定Web服务的路径前缀(如空字符串表示根路径,'myapp'表示子路径),不能是包含协议或IP的完整URL,该错误会导致前端无法正确建立与后端的连接。
  2. 未允许外部访问绑定:默认情况下Flet服务仅绑定127.0.0.1,远程部署时外部客户端无法访问。
  3. 端口未开放:服务器防火墙/安全组未开放8502端口,导致前端无法通过WebSocket(Flet依赖的通信方式)连接后端。

解决方法

  1. 修正name参数配置:将DEFAULT_FLET_PATH改为合法的路径前缀,比如空字符串(根路径部署):
    DEFAULT_FLET_PATH = ''  # 根路径部署,或设为'myapp'这类子路径
    
  2. 添加外部访问绑定:在ft.app()中指定host='0.0.0.0',允许任意IP访问服务:
    ft.app(name=flet_path, target=main, view=None, port=flet_port, host='0.0.0.0')
    
  3. 开放服务端口:在服务器的防火墙、安全组规则中,添加允许8502端口的入站访问规则。
  4. 验证WebSocket连接:打开浏览器开发者工具(F12),切换到Network标签,筛选WebSocket请求,确认是否能成功建立连接,排查网络层面问题。

修改后的完整代码

import flet as ft
import os

# 根路径部署设为空字符串,子路径部署可改为'myapp'等
DEFAULT_FLET_PATH = ''  
DEFAULT_FLET_PORT = 8502


def main(page: ft.Page):
    page.title = "You Enjoy Mychatbot"
    page.add(ft.Text("Reba put a stopper in the bottom of the tub"))


if __name__ == "__main__":
    flet_path = os.getenv("FLET_PATH", DEFAULT_FLET_PATH)
    flet_port = int(os.getenv("FLET_PORT", DEFAULT_FLET_PORT))
    ft.app(name=flet_path, target=main, view=None, port=flet_port, host='0.0.0.0')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 20:31:01