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

Unity WebGL嵌入Next.js网站报错:HTTP连接不支持Brotli压缩

解决方案:Unity WebGL 嵌入 Next.js 出现 Brotli 压缩错误

问题根源

Unity 默认导出 WebGL 时会使用 Brotli 压缩资源,但 HTTP 连接(比如本地开发的 http://localhost 或非 HTTPS 部署环境)下,浏览器或服务器可能未正确支持 Brotli 压缩的资源传输,导致报错。

解决步骤

1. 直接关闭 Unity 的 Brotli 压缩(最简单方案)

  • 打开 Unity 项目,进入 Build Settings > WebGL > Player Settings > Publishing Settings
  • 找到 Compression Format,改为 Disabled 或 Gzip(Gzip 在 HTTP 环境兼容性更好)
  • 重新导出 WebGL 包,替换 Next.js public 文件夹里的旧游戏文件

2. 配置 Next.js 支持 Brotli 压缩资源

如果不想关闭压缩,可通过 Next.js 配置让服务器正确识别 Brotli 文件:

  • 在项目根目录创建/修改 next.config.js,添加以下代码:
    /** @type {import('next').NextConfig} */
    const nextConfig = {
      async headers() {
        return [
          {
            source: '/:path*.br',
            headers: [
              { key: 'Content-Encoding', value: 'br' },
              { key: 'Content-Type', value: 'application/octet-stream' },
            ],
          },
        ];
      },
    };
    
    module.exports = nextConfig;
    
  • 重启 Next.js 开发服务器,或重新部署生产环境

3. 检查 iframe 路径正确性

  • 确保 iframe 的 src 指向 public 文件夹内 WebGL 导出的 index.html,例如游戏文件放在 public/unity-game 下,src 应为 /unity-game/index.html
  • 本地开发必须用 npm run dev 启动项目,不要直接打开 HTML 文件(避免 file:// 协议的限制)

4. 生产环境部署补充

  • 部署到 Vercel、Netlify 等平台时,默认支持 Brotli,只需确保导出的 .br 文件正常上传即可
  • 自行部署 Nginx 等服务器时,需配置服务器为 .br 文件发送 Content-Encoding: br 响应头

内容的提问来源于stack exchange,提问作者Arthur Kaza

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 17:22:33