c# - Azure CDN + Asp.net MVC 云服务压缩 bundle 不起作用

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

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

一切工作正常,除了通过 CDN 返回的 JS 和 CSS bundle 未压缩。 如果我不使用 CDN,则 bundle 会以压缩形式返回(我可以看到内容编码是 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 配置文件(但其他端点),图片确实具有内容编码:gzip,因此看来压缩在 CDN 上也能正常工作。

This SO answer建议添加某物。就像 CDN URL 末尾的 &group=smth.js 一样,但这没有帮助。

那我做错了什么?

最佳答案

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

enter image description here

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

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

enter image description here

enter image description here

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

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

enter image description here

关于c# - Azure CDN + Asp.net MVC 云服务压缩 bundle 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46754806/

相关文章:

c# - 串口连续实时数据C#

c# - 使用 Javascript 加密并使用 C# 解密的简单算法

javascript - MVC Core 在客户端添加多个表/表单,如何从服务器端检索数据

c# - Azure Function Http Trigger 验证正文数据

c# - 如何停止Azure Durable函数上的并行执行?

c# - 尝试从 ExecuteScalar() 获取值时抛出异常

c# - 如何暂停/挂起一个线程然后继续它?

asp.net - 在 asp.net MVC 中使用多过滤器数据表

asp.net-mvc - 处理错误属性不起作用

azure - 我可以设置一个内部端点来在另一个订阅的另一个部署中对辅助角色进行负载平衡吗