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

时间:2017-10-15 12:03:02

标签: c# asp.net-mvc azure azure-cdn

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

一切都运转良好,除了JS&通过CDN返回的CSS包不会被压缩。 如果我没有使用CDN,则会返回压缩包(我可以看到Content-Encoding是gzip)。

我在CDN上启用了压缩功能,如下图所示:

enter image description here

在我的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>

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

This SO answer建议添加smth。比如CDN网址末尾的&group=smth.js,但这没有用。

那么我做错了什么?

1 个答案:

答案 0 :(得分:1)

根据您的描述,我创建了我的MVC Web应用程序以检查此问题,但我没有在urlCompression文件下配置web.config

enter image description here

如果没有Azure CDN,则会压缩css / javascript。

对于测试,我只是通过Azure CDN CDN我的整个网络应用程序,如下所示:

enter image description here

enter image description here

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

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

enter image description here