Azure CDN + Asp.net MVC Cloud Service压缩捆绑包无法正常工作

hyp*_*erN 12 c# asp.net-mvc azure azure-cdn

我正在使用Azure CDN,它指向我的Azure云服务.我已经为我的JS和CSS文件启用了捆绑,而在BundleConfig中我已经设置了bundles.UseCdn = true.

一切都运行正常,除了通过CDN返回的JS和CSS包没有压缩.如果我没有使用CDN,则压缩包返回(我可以看到Content-Encoding是gzip).

我已经在我的CDN上启用了压缩,如下图所示:

在此输入图像描述

在我的ASP.net MVC web.config压缩也启用,它看起来像这样:

 <urlCompression doStaticCompression="true" doDynamicCompression="true" />
  <httpCompression>
    <dynamicTypes>
    <clear/>
      <add mimeType="text/*" enabled="true" />
      <add mimeType="message/*" enabled="true" />
      <add mimeType="application/x-javascript" enabled="true" />
      <add mimeType="text/javascript" enabled="true" />
      <add mimeType="text/css" enabled="true" />
      <add mimeType="application/json" enabled="true" />

      <!-- HERE -->
      <add mimeType="image/svg+xml" enabled="true" />
      <add mimeType="image/png" enabled="true" />
      <add mimeType="image/jpg" enabled="true" />
      <add mimeType="image/jpeg" enabled="true" />
      <add mimeType="application/font-woff2" enabled="true" />
      <add mimeType="application/x-font-ttf" enabled="true" />
      <add mimeType="application/octet-stream" enabled="true" />
      <!-- HERE -->

      <add mimeType="*/*" enabled="false" />
    </dynamicTypes>
    <staticTypes>
    <clear/>
      <add mimeType="text/*" enabled="true" />
      <add mimeType="message/*" enabled="true" />
      <add mimeType="application/x-javascript" enabled="true" />
      <add mimeType="text/javascript" enabled="true" />
      <add mimeType="text/css" enabled="true" />
      <add mimeType="application/atom+xml" enabled="true" />
      <add mimeType="application/xaml+xml" enabled="true" />

      <!-- HERE -->
      <add mimeType="image/png" enabled="true" />
      <add mimeType="image/jpg" enabled="true" />
      <add mimeType="image/jpeg" enabled="true" />
      <add mimeType="application/font-woff2" enabled="true" />
    <add mimeType="application/x-font-ttf" enabled="true" />
      <add mimeType="application/octet-stream" enabled="true" />
      <!-- HERE -->

      <add mimeType="*/*" enabled="false" />
    </staticTypes>
  </httpCompression>
Run Code Online (Sandbox Code Playgroud)

有趣的是,对于相同的CDN配置文件(但其他端点)图片确实有Content-Encoding:gzip,所以似乎压缩在CDN上也可以正常工作.

这个答案建议添加smth.就像&group=smth.js在CDN URL的末尾,但这没有帮助.

那么我做错了什么?

Bru*_*hen 1

根据你的描述,我创建了我的 MVC Web 应用程序来检查这个问题,但我没有urlCompression在我的web.config文件下进行配置。

在此输入图像描述

如果没有 Azure CDN,css/javascript 将被压缩。

为了进行测试,我只是通过 Azure CDN CDN 我的整个 Web 应用程序,如下所示:

在此输入图像描述

在此输入图像描述

注意:默认情况下启用压缩,并且压缩格式为默认设置。

然后,访问 css/javascript 链接,它们将按预期压缩。

在此输入图像描述