0

我有一个 Blazor 应用程序,我在其中添加了文本压缩,这样:

    context.Services.AddResponseCompression(o =>
    {
        o.EnableForHttps = true;
    });

    // We use Brotli by default : https://docs.microsoft.com/en-us/aspnet/core/performance/response-compression?view=aspnetcore-3.1
    //services.Configure<GzipCompressionProviderOptions>(o => o.Level = System.IO.Compression.CompressionLevel.Optimal);
    context.Services.Configure<BrotliCompressionProviderOptions>(options =>
    {
        options.Level = CompressionLevel.Fastest;
    });

app.UseResponseCompression();

当我在浏览器中检查时,似乎激活了压缩:

在此处输入图像描述

现在,我测试网站速度,第一个建议是添加文本压缩。所以,我不明白为什么我有这样的消息:

在此处输入图像描述

有人知道这个问题吗?

4

3 回答 3

1

我已经找到了问题,希望对其他人有帮助。对 UseResponseCompression 的调用必须放在 UseStaticFiles 之前,这样它也将考虑所有静态​​(css、js)文件。

// Must be before UseStaticFiles to compress static
//files and UseMvc to compress MVC responses
app.UseResponseCompression();

app.UseStaticFiles();
于 2020-09-11T06:38:48.737 回答
1

ASP.NET Core 文档概述了使用CompressionLevel.Fastest将导致压缩完成最快,而不是网页加载最快。

要获得最高级别的压缩,您应该使用CompressionLevel.Optimal.

在此处输入图像描述

于 2020-09-09T19:50:45.907 回答
0

不知道您是否解决了它,但是,您缺少提供者。此外,在大多数情况下,最快优于最佳。Optimal 速度较慢,在某些情况下,Fastest 压缩比 Optimal 压缩效果更好,而且速度更快。因此,在大多数情况下,最快是要走的路。

services.AddResponseCompression(options =>
        {
            options.Providers.Add<BrotliCompressionProvider>();
            options.MimeTypes = ResponseCompressionDefaults.MimeTypes.Concat(
                new[] { "application/octet-stream" });
            options.EnableForHttps = true;
        });
于 2021-11-23T16:39:05.823 回答