【问题标题】:gzip compression of MVC javascript bundles in an Azure Web RoleAzure Web 角色中 MVC javascript 包的 gzip 压缩
【发布时间】:2015-02-07 14:05:48
【问题描述】:

我正在使用 ASP.NET MVC 的内置捆绑我们的 CSS 和 javascript。

这会将 CSS 捆绑到一个名为

的包中

/Content/allcss?v=b2tuMEFw5RyKcq1cIwQCy0z5sJ_hUCzkzORKUQzsdow1

和javascript进入

/bundles/identity?v=h8j2kTCIC9kJAFTNr9X5evhiqPEF4I0uEN0GydPQyxY1

要让 gzip 在 IIS 7.5 本地工作,我根本不需要更改我的 web.config - 我需要做的就是在 IIS 管理器中在我的网站上启用静态压缩和动态压缩。完成后,我可以看到 JS 包的响应标头:

/bundles/identity?v=h8j2kTCIC9kJAFTNr9X5evhiqPEF4I0uEN0GydPQyxY1

内容类型:文本/javascript;字符集=utf-8

内容编码:gzip

当它部署到我们的 Azure A2 云服务(Web 角色)时,gzip 无法处理 JS 包。它正在处理 CSS 捆绑包。我已经远程桌面到 Azure Web 角色实例,并且可以看到在 IIS 中启用了静态和动态压缩。 但是,js 包仍然没有 gzip 压缩。响应具有相同的 Content-Type 但没有 Content-Encoding 标头。

内容类型:文本/javascript;字符集=utf-8

如何在 Azure Web 角色的 javascript 包上启用 gzip 压缩?

更新: 我关注this post to enable Failed Request Tracing,发现IIS正在记录

DYNAMIC_COMPRESSION_NOT_SUCCESS 原因 NO_COMPRESSION_PROXY

【问题讨论】:

    标签: asp.net-mvc azure azure-web-roles


    【解决方案1】:

    我不得不更改 %windir%\System32\inetsrv\config\applicationHost.config 并添加 noCompressionForProxies="false"

    <httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files" noCompressionForProxies="false">
    

    但最好在我们的部署过程中更改该设置,如下所示:

    %windir%\system32\inetsrv\AppCmd.exe set config -section:httpCompression /noCompressionForProxies:false
    

    而且,FWIW,如果可能,请在您尝试调试此类事情时禁用您在其他区域的云服务并将您的实例计数缩减为 1。我在 2 个区域有 2 个实例,这在跨 4 个虚拟机更新 web.config 和 applicationhost.config 文件时造成了混乱。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-06-13
      • 1970-01-01
      • 2012-05-12
      • 1970-01-01
      • 2021-07-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多