Unity构建WebGL游戏报错无法解析Game.framework.js.br求助
Unity WebGL构建后.br文件解析报错修复方案
问题背景
- 基于Unity开发简易小游戏,选择WebGL平台完成项目构建
- 运行构建产物时抛出固定错误:
Unable to parse Build/Game.framework.js.br! This can happen if build compression was enabled but web server hosting the content was misconfigured to not serve the file with HTTP Response Header "Content-Encoding: br" present. Check browser Console and Devtools Network tab to debug.
故障根因
Unity WebGL构建默认开启Brotli压缩,产出的.br后缀文件为压缩后的资源,当前托管资源的Web服务器没有给这类文件返回Content-Encoding: br响应头,浏览器拿到压缩文件后未做解压处理,直接按普通JS文件解析就会触发报错。
修复方案
二选一即可,根据自己的部署权限选择:
方案1:配置服务器响应头(推荐,保留压缩能力,加载速度更快)
根据使用的Web服务类型添加对应规则:
- Nginx服务:在站点配置的静态资源规则块中添加如下配置
location ~* \.br$ { add_header Content-Encoding br; # 按资源类型匹配对应Content-Type location ~* \.js\.br$ { add_header Content-Type application/javascript; } location ~* \.wasm\.br$ { add_header Content-Type application/wasm; } location ~* \.data\.br$ { add_header Content-Type application/octet-stream; } }
- Apache服务:在站点根目录的
.htaccess文件中添加如下规则
<IfModule mod_mime.c> AddEncoding br .br </IfModule>
- PaaS类静态托管平台(如当前使用的Replit平台):在项目根目录创建静态服务配置文件,给所有.br后缀资源添加对应的
Content-Encoding响应头,同时按文件后缀匹配正确的Content-Type即可,配置完成后重新触发部署。
配置完成后重启服务,清空浏览器缓存再访问即可恢复正常。可以打开浏览器开发者工具的网络面板,找到对应.br文件的请求,确认响应头携带Content-Encoding: br字段即配置生效。
方案2:关闭Unity构建压缩(适合无服务器配置权限的场景,操作零门槛)
- 打开Unity项目,依次进入
File > Build Settings > Player Settings > Publishing Settings面板 - 找到
Compression Format配置项,将默认选中的Brotli修改为Disabled - 重新执行WebGL构建,将新生成的构建产物全量替换到服务器对应目录即可
该方案无需调整任何服务器配置,缺点是未压缩的资源包体更大,加载速度比开启压缩时稍慢。
内容的提问来源于stack exchange,提问作者jake is the coolest
相关产品推荐
相关产品推荐

