iNeed创作者文档

打包与导出

本页目录

ZIP、gzip 与 Brotli

外层 ZIP

使用标准 ZIP 的 Store(方法 0)或 Deflate(方法 8)。不使用加密 ZIP、分卷或自解压包;不要交付 RAR / 7z / tar.gz 作为上传包。不依赖 ZIP64、LZMA 或 Zstandard 等未验证的归档变体。

推荐普通 Deflate;“压缩级别越高”不等于浏览器加载越快,因为浏览器访问的是解开 ZIP 后的资源。对已有压缩资源使用 Store 也可以;最终必须以平台验证结果为准。

Godot 预压缩

平台接收的组合见文件类型。压缩不是必选项,未压缩的有效 WASM/PCK/JS 也可托管;包体接近限额时,可离线生成 gzip 或 Brotli 版本,并同步更新加载器请求路径。

  • gzip 文件必须真正是 gzip 数据;Brotli 文件必须可被 Brotli 解码。
  • 响应 Content-Encoding 必须分别为 gzip 或 br;Content-Type 按去掉压缩后缀的逻辑资源确定。
  • 平台在上传、存储、复制、网关和分发时保留编码元数据;WASM 解码后检查 v1 文件头,PCK 检查 GDPC 文件头。
  • 不把 gzip/br 再解码后仍设置编码头,不对同一响应重复编码。
  • 浏览器已经按响应头解码时,不再在游戏里手动解压一次。

保持资源一致

不要只压缩资源却不改加载器引用,也不要改引用后漏上传资源。若 loader 记录大小,须遵循该版本 loader 对大小的定义,实际启动测试不能省略。JS、WASM、PCK 和 worklet 来自同一导出批次,不混用不同 Godot 模板。

仅提供包内 _headers 或 .htaccess 不会改变平台响应头;它们不是用户可控制的服务器配置。若请求返回 MIME/编码错误,提交请求 URL、响应头、资源哈希与报错定位,不要求关闭隔离或开放任意响应头。

验证清单

  1. 记录每个资源的存储大小及解码大小,满足两套容量限制。
  2. 检查 HTML/loader 引用的 URL 与 ZIP 路径一致,无原件和压缩件的无意重复下载。
  3. 在真实 HTTP 环境启动;file:// 打开成功不能作为托管验收。
  4. 检查状态码、Content-Type、Content-Encoding、错误控制台和完整玩法启动。
  5. 分别测试冷缓存、返回、重新开局与刷新,区分请求数和实际传输量。