Skip to content

🐛[BUG] 页面卡 logo 无法进入(Google CDN 阻断) #453

Description

@ilbuco

⚠️ 确认是否已存在类似问题

  • 我已经搜索过issues,没有找到类似问题

🔧 运行方式

使用源代码运行

🐍 如果是使用源代码运行,请选择你的Python环境版本

Other (请在问题中说明)

💻 请选择你的系统环境

Other (请在问题中说明)

⚠️ 确认是否已经重试多次

  • 我已经尝试过多次,仍然出现问题

🕹 复现步骤

😯 问题描述

页面卡 logo 无法进入(Google CDN 阻断)

环境

  • 镜像:ihmily/streamcap:v1.0.3(也试了 latest,同样问题)
  • 部署方式:Docker Compose,Web 模式(PLATFORM=web
  • 服务器:中国境内服务器
  • 客户端:安卓,Chrome 浏览器

现象

打开页面后永远卡在 logo 界面,"Flutter app loaded" 之后不再继续,Console 报错:webRenderer is not definedcanvaskit.wasm 加载失败、WebSocket 连接失败。

根因定位

通过 F12 DevTools 排查,发现三个关键请求全部加载失败:

  • https://www.gstatic.com/flutter-canvaskit/.../canvaskit.wasm
  • https://www.gstatic.com/flutter-canvaskit/.../canvaskit.js
  • https://fonts.gstatic.com/s/roboto/v32/.../woff2

这些都是 Google CDN 域名,中国大陆客户端浏览器被 GFW 阻断,无法下载。

已验证的尝试

  1. .env 中加 FLET_NO_CDN=true / FLET_NO_CDN=1不生效,返回的 HTML 中 noCdn 仍为 false
  2. docker-compose.yml 中通过 environmentFLET_NO_CDN=true不生效
  3. 客户端开全局代理访问 → 依然卡 logo(部分代理不代理 WebSocket/WASM 请求)
  4. v1.0.2 和 v1.0.3 均存在此问题(v1.0.2 升级到 v1.0.3 前后都无法正常加载)

临时绕过方案

在服务器前加一层 Nginx 反向代理,用 sub_filter 强行替换 HTML 中的 noCdn: falsenoCdn: true,并配置 WebSocket 转发:

location / {
    proxy_pass http://127.0.0.1:6006;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $host;

    sub_filter 'noCdn: false' 'noCdn: true';
    sub_filter 'flet.noCdn=false' 'flet.noCdn=true';
    sub_filter_once off;
    sub_filter_types *;
}

建议

希望对 Docker 镜像做以下优化,让中国大陆用户能直接使用:

  1. 预置 CanvasKit 本地文件:将 canvaskit.wasm / canvaskit.js 和 Roboto 字体打包进 Docker 镜像,通过 noCdn: true + 本地路径加载
  2. 暴露配置项:在 .env 或环境变量中支持 FLET_NO_CDN=true,让用户自行关闭 CDN 加载

ft.app 支持 web_renderer 参数(可设为 CANVAS_KIT / HTML),如果能在 .env 中配置 WEB_RENDERER=html 并生效,也可以绕过此问题。或者直接预置本地 CanvasKit 文件是最彻底的方案。

感谢!

📜 错误信息

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions