◀ 返回笔记

Aseprite → Godot 工作流(下)

三平台打包 · Web 部署原理 · failed-to-fetch 根因 —— 2026-09 整理

导出预设要点(export_presets.cfg)

$GODOT = "_tools\godot43\Godot_v4.3-stable_win64.exe"
& $GODOT --headless --path .\demo_project --export-release "Web" .\dist\web\index.html
& $GODOT --headless --path .\demo_project --export-release "Windows Desktop" .\dist\win\game.exe
& $GODOT --headless --path .\demo_project --export-release "Android" .\dist\apk\game.apk

Web 版“failed to fetch”根因与修复原理

Godot 4 Web 导出在普通静态托管上常见的 Failed to fetch / 白屏,95% 是宿主环境问题,按优先级排查:

  1. MIME.wasm 必须返回 application/wasm(Nginx 需在 conf.d 追加 types)
  2. 跨源隔离:线程版导出需要 COOP: same-origin + COEP: require-corp(否则 Worker/SAB 被拦)
  3. 协议一致:页面与 wasm/pck 同源同协议,杜绝混合内容
  4. 编码:若服务端压缩过资源,Content-Encoding 必须与文件实际一致

本站实测(logic_map 导出包):按上述头部署后 Godot Engine v4.3 正常启动并渲染; 旧站点问题基本可以定位到旧托管的代理/CORS/编码配置——浏览器 F12 → Network 里那条红色请求就是病根。

把导出包放进本站的姿势

  1. 整目录拷到 games/<slug>/(或大文件走服务器游戏池,见 games/logic_map/README.md
  2. games/manifest.json 登记一条
  3. npm run release -- x.y.z 发布(纯静态包可不发版,直接同步服务器)

更完整的托管细节见项目内 docs/GODOT-HOSTING.mddocs/DEPLOY.md