无论我在
AddResponseCompression()
中做什么并不重要,Web 服务始终使用 Gzip 进行压缩。我想使用 brotli。我测试过:
builder.Services.AddResponseCompression();
///////////
builder.Services.AddResponseCompression(options =>
{
options.Providers.Add<BrotliCompressionProvider>();
});
///////////
builder.Services.AddResponseCompression(options =>
{
options.MimeTypes = new[] {
"text/html",
"text/css",
..
.
};
options.Providers.Add<BrotliCompressionProvider>();
});
///////////
builder.Services.AddResponseCompression(options =>
{
options.Providers.Add<BrotliCompressionProvider>();
options.Providers.Add<GzipCompressionProvider>();
});
如下图所示,始终使用 Gzip。但我发现html页面它自己得到了
br
Content-Encoding。
值得一提的是,IIS 中启用了静态和动态内容压缩,并且选择了所有 mime 类型。
更新:突然修复了!哇。但如何呢?什么也没有变。完全没有!
我在另一个项目上再次测试。
AddResponseCompression()
,然后UseResponseCompression()
,然后UseStaticFiles()
,同样的事情再次发生。全部使用 Gzip!
也许我应该提交 Dotnet 的问题?
您可以在applicationHost.config中设置压缩方法,如下所示:
<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
<scheme name="br" dll="%ProgramFiles%\IIS\IIS Compression\iisbrotli.dll" />
</httpCompression>
更多信息可以参考这个链接: