Apache服务器Content-Type配置错误:.wasm.gz未返回application/wasm类型
问题根因
- 你的Hostinger主机实际运行的是LiteSpeed Web Server,并非原生Apache,二者对双后缀文件(
.wasm.gz)的MIME识别逻辑存在差异:LiteSpeed默认会优先匹配全局配置中.gz后缀的MIME类型,忽略子目录.htaccess中自定义的双后缀规则。 - 你现有配置仅用
AddType声明MIME,没有强制指定响应头,LiteSpeed默认的MIME优先级高于子目录.htaccess的AddType规则。 - 站点开启了LiteSpeed缓存,之前错误的MIME响应结果被缓存,配置修改后未清缓存也会导致规则不生效。
- 文件名包含空格,部分规则匹配时可能出现异常。
修复步骤
- 替换Build目录下的.htaccess内容,新增强制响应头配置适配LiteSpeed:
# Unity WebGL 适配LiteSpeed服务器配置 <IfModule mod_mime.c> AddEncoding gzip .unityweb AddEncoding gzip .wasm AddType application/wasm .wasm RemoveType .gz RemoveEncoding .gz AddEncoding gzip .gz AddType application/octet-stream .data.gz AddType application/wasm .wasm.gz AddType application/javascript .js.gz AddType application/octet-stream .symbols.json.gz </IfModule> # 强制指定响应头,覆盖全局默认配置 <IfModule mod_headers.c> <FilesMatch "\.wasm\.gz$"> Header set Content-Type "application/wasm" Header set Content-Encoding "gzip" </FilesMatch> <FilesMatch "\.js\.gz$"> Header set Content-Type "application/javascript" Header set Content-Encoding "gzip" </FilesMatch> <FilesMatch "\.data\.gz$"> Header set Content-Type "application/octet-stream" Header set Content-Encoding "gzip" </FilesMatch> </IfModule>
- 清理LiteSpeed缓存:登录Hostinger主机管理面板,找到LiteSpeed缓存管理选项,清空全站缓存;也可以在WordPress后台的LiteSpeed缓存插件中执行清空操作。
- 优化文件名(可选但推荐):将
WebGL Build.wasm.gz文件名中的空格删除或替换为下划线,同时修改对应HTML加载代码中的资源路径,避免规则匹配异常。
内容的提问来源于stack exchange,提问作者David
相关产品推荐
相关产品推荐

