3

我在 Asp.Net Core 2.2 文档中阅读,将 brotli 压缩添加到 2.2

我有app.UseResponseCompression();,但是当我services.AddResponseCompression();Startup.cs我的系统上使用最新的 Chrome 浏览器尝试它时,我在响应标头中只看到 gzip 压缩。我在 Windows Server 2012 IIS Web 服务器上托管我的 Asp.Net Core 2.2 应用程序。

我应该配置什么来获得有效的 brotli 压缩?

开发工具截图

4

2 回答 2

3

如果您在 IIS 中托管,那么这意味着 IIS 是与浏览器通信的网络服务器。它位于您的 ASP.NET Core 应用程序前面并代理所有请求和响应,但默认情况下它不支持 Brotli。

您需要使用 IIS 配置响应压缩。有一个扩展可用于添加 Brotli 和 Zlib 支持:https ://docs.microsoft.com/en-us/iis/extensions/iis-compression/iis-compression-overview

你也可以在没有 IIS 的情况下运行 ASP.NET Core 应用程序。

于 2019-02-06T01:03:15.863 回答
1

您提到您的应用程序托管在 IIS 中,并且在您附加的链接中说

无法使用 IIS 动态压缩模块时使用响应压缩中间件

因此,如果您使用 IIS,您可以删除该中间件并使用开箱即用的 IIS 压缩模块。

您需要采取的步骤是:

  1. 在您的网络服务器上安装 brotli - 只需按照此处的说明 https://docs.microsoft.com/en-us/iis/extensions/iis-compression/iis-compression-overview#installing-iis-compression%5D
  2. 删除压缩中间件
  3. 在您的 applicationHost.conf 确保brotli存在于gzip
  4. 注释掉这个gzip选项是applicationHost.conf因为 98% 的浏览器支持brotli压缩并且在旧版本的 IISgzip中被选中而不是因为(例如)brotli中的顺序。Request Headergzip deflate br
于 2021-02-01T14:22:26.650 回答