Azure CDN + Asp.net MVC云服务压缩捆绑包无法正常工作

12

我正在使用Azure CDN,指向我的Azure Cloud Service。我已经为我的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>

有趣的是,对于相同的CDN配置文件(但其他端点),图片确实具有Content-Encoding:gzip,因此似乎CDN上的压缩也很好用。

这个SO答案建议在CDN URL结尾处添加类似&group=smth.js的内容,但这并没有起到帮助作用。

那我错在哪里了呢?


你尝试过清除捆绑内容然后再试一次吗? - Richard Li - MSFT
当然,我已经多次使用不同的配置部署了我的云服务,并且每次部署后都进行了清除,但是没有成功。 - hyperN
1个回答

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

enter image description here

没有 Azure CDN,CSS/JavaScript 将被压缩。
为了测试,我通过 Azure CDN 将整个 Web 应用进行了 CDN 如下:

enter image description here

enter image description here

注意:压缩默认已启用,压缩的格式使用默认设置。
然后,访问CSS/JavaScript链接时,它们将按预期进行压缩。

enter image description here


谢谢您的回答,但对我来说似乎gzip不是默认启用的。当我从web.config中注释掉urlCompression部分时,我的内容没有被gzip压缩。 - hyperN
你的压缩截图看起来很奇怪。你有检查过这里关于创建CDN配置文件的内容吗? - Bruce Chen
我不确定你为什么觉得奇怪,如果你点击这个链接并滚动到高级层部分,它看起来完全一样(除了我有更多的类型)。 - hyperN

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接