我正在使用Azure CDN,它指向我的Azure云服务。我已经为我的JS和CSS文件启用了捆绑功能,而在BundleConfig中我设置了bundles.UseCdn = true
。
一切都运转良好,除了JS&通过CDN返回的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上也能正常工作。
This SO answer建议添加smth。比如CDN网址末尾的&group=smth.js
,但这没有用。
那么我做错了什么?