FlutterFlow Web应用在部署后首次加载时显示空白屏幕
我把FlutterFlow的 Web应用部署到了我的自定义域名。网站在首次加载时会显示一个 空白页面,Flutter应用也无法启动。
环境
- FlutterFlow Web应用
- 自定义域名:
https://XXXX.co.in - FlutterFlow中启用了CanvasKit
- 离线使用打包CanvasKit:已禁用
- 使用WASM:已禁用
同样显示空白屏。然后我启用了
- 离线使用打包CanvasKit:已启用
- 使用WASM:禁用
问题
打开网站时,页面只显示一个空白屏。检查浏览器控制台后出现以下错误:
GET https://xxx.co.in/canvaskit/chromium/canvaskit.js 404 (Not Found)
GET https://xxx.co.in/canvaskit/chromium/canvaskit.wasm 404 (Not Found)
Uncaught (in promise) TypeError: Failed to execute 'compile' on 'WebAssembly': HTTP status code is not ok
Uncaught (in promise) Error: Failed to fetch dynamically imported module:
https://xxx.co.in/canvaskit/chromium/canvaskit.js
FlutterFlow设置
- CanvasKit已启用:Yes
- CanvasKit基础URL:
canvaskit/ - 离线使用打包CanvasKit:已启用
- 使用WASM:已禁用
问题
- 为什么Flutter要从
/canvaskit/chromium/加载canvaskit.js和canvaskit.wasm? - 我需要将
canvaskit文件夹手动上传到我的托管服务器吗? - CanvasKit基础URL应该设置为:
https://www.gstatic.com/flutter-canvaskit/
而不是 canvaskit/?
4.是否有推荐的FlutterFlow配置,可以在首次加载时避免空白屏?
如果能就使用CanvasKit的 FlutterFlow Web应用给出正确的部署设置的指导,我将不胜感激。
解决方案
- 当启用离线打包CanvasKit时,Flutter Web引擎会自动附加
/chromium/ - 是的。如果你选择自行托管CanvasKit(离线模式),你必须上传Flutter的
build/web目录中生成的完整、未修改的canvaskit/文件夹。 - 是的,如果你不想手动托管大型WASM二进制文件,修改这个字符串是最简单的修复方法。
在我看来,你应切换到Google's Global CDN
- 打开FlutterFlow设置 -> Web Delivery / CanvasKit设置。
- 保持CanvasKit启用:
Yes。 - 将CanvasKit基础URL精确设置为:
https://www.gstatic.com/flutter-canvaskit/ - 将离线打包CanvasKit设置为:
Disabled(关闭)。 - 重新部署或重建你的Web应用。
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。