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

如何为Azure Web App子目录配置gzip压缩(Content-Encoding)?

问题分析与解决方案

是否需要为Build子目录启用gzip?

必须启用。Unity WebGL的Build目录包含大体积的JavaScript包、WASM文件和资源包,这些文件的压缩比极高(通常能压缩到原大小的30%以下)。就算当前加载速度尚可,启用gzip能显著降低带宽消耗、提升全球用户(尤其是低带宽地区)的加载体验,同时符合浏览器性能优化的最佳实践,控制台的性能提示也明确指向这一点,别忽略。

为什么当前web.config配置对Build目录不生效?

你的现有配置本身是全局生效的,并非只针对根目录。问题大概率出在这几点:

  1. MIME类型缺失:Unity WebGL构建文件包含application/wasm、application/octet-stream(比如.data文件)等类型,你的staticTypes里没启用这些类型的压缩,最后一条*/*设为false会覆盖所有未明确列出的类型。
  2. Azure Web App压缩缓存:Azure可能已经缓存了Build目录文件的未压缩版本,需要清除缓存或重新部署触发压缩。
  3. (概率极低)文件大小阈值:IIS默认对小于256字节的文件不压缩,但Unity构建文件远大于这个值,基本可以排除。

修复步骤(无需Front Door,调整web.config即可)

1. 更新web.config的httpCompression配置

补充Unity WebGL所需的MIME类型到staticTypes中,覆盖Build目录的所有文件类型:

<urlCompression doStaticCompression="true" doDynamicCompression="true" />
<httpCompression>
    <dynamicTypes>
        <clear />
        <add enabled="true" mimeType="text/*"/>
        <add enabled="true" mimeType="message/*"/>
        <add enabled="true" mimeType="application/x-javascript"/>
        <add enabled="true" mimeType="application/javascript"/>
        <add enabled="true" mimeType="application/json"/>
        <add enabled="false" mimeType="*/*"/>
        <add enabled="true" mimeType="application/atom+xml"/>
        <add enabled="true" mimeType="application/atom+xml;charset=utf-8"/>
    </dynamicTypes>
    <staticTypes>
        <clear />
        <add enabled="true" mimeType="text/*"/>
        <add enabled="true" mimeType="message/*"/>
        <add enabled="true" mimeType="application/javascript"/>
        <add enabled="true" mimeType="application/atom+xml"/>
        <add enabled="true" mimeType="application/xaml+xml"/>
        <add enabled="true" mimeType="application/json"/>
        <!-- 新增Unity WebGL所需类型 -->
        <add enabled="true" mimeType="application/wasm"/>
        <add enabled="true" mimeType="application/octet-stream"/>
        <add enabled="true" mimeType="application/x-font-woff"/>
        <add enabled="true" mimeType="image/svg+xml"/>
        <add enabled="false" mimeType="*/*"/>
    </staticTypes>
</httpCompression>

2. 强制Azure刷新压缩缓存

  • 直接在Azure Portal重启你的Web App,或者推送新的代码/配置触发重新部署;
  • 也可以在Web App的「配置 > 常规设置」里修改一个小配置(比如调整HTTP版本)再改回来,触发应用重启和缓存刷新。

3. 验证压缩是否生效

打开浏览器开发者工具的网络面板,刷新页面后查看Build目录下的文件:

  • 确认请求头包含Accept-Encoding: gzip, deflate;
  • 确认响应头包含Content-Encoding: gzip;
  • 查看「大小」列,压缩后大小应远小于「内容」列的原始大小。

是否需要使用Front Door或重写规则?

  • 不需要Front Door:除非你需要全球CDN加速、WAF等额外功能,单纯解决gzip问题调整web.config就足够;
  • 不需要重写规则:当前问题是MIME类型配置不全,而非路径匹配问题,重写规则解决不了压缩不生效的核心问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 15:20:22