Ver Fonte

开启响应压缩

Hans há 1 ano atrás
pai
commit
e9c053ab35
1 ficheiros alterados com 29 adições e 1 exclusões
  1. 29 1
      Admin.NET/Admin.NET.Web.Core/Startup.cs

+ 29 - 1
Admin.NET/Admin.NET.Web.Core/Startup.cs

@@ -18,6 +18,7 @@ using Microsoft.AspNetCore.Builder;
 using Microsoft.AspNetCore.Hosting;
 using Microsoft.AspNetCore.Http;
 using Microsoft.AspNetCore.HttpOverrides;
+using Microsoft.AspNetCore.ResponseCompression;
 using Microsoft.Extensions.DependencyInjection;
 using Microsoft.Extensions.Hosting;
 using Newtonsoft.Json;
@@ -25,7 +26,7 @@ using OnceMi.AspNetCore.OSS;
 using SixLabors.ImageSharp.Web.DependencyInjection;
 using System;
 using System.Threading.Tasks;
-
+using System.Linq;
 namespace Admin.NET.Web.Core;
 
 public class Startup : AppStartup
@@ -201,10 +202,37 @@ public class Startup : AppStartup
         // 设置默认查询器China和International
         //IpToolSettings.DefalutSearcherType = IpSearcherType.China;
         IpToolSettings.DefalutSearcherType = IpSearcherType.International;
+        // 第一步: 配置gzip与br的压缩等级为最优
+        //services.Configure<BrotliCompressionProviderOptions>(options =>
+        //{
+        //    options.Level = CompressionLevel.Optimal;
+        //});
+        //services.Configure<GzipCompressionProviderOptions>(options =>
+        //{
+        //    options.Level = CompressionLevel.Optimal;
+        //});
+        //注册压缩响应
+        services.AddResponseCompression((options) =>
+        {
+            options.EnableForHttps = true;
+            options.Providers.Add<BrotliCompressionProvider>();
+            options.Providers.Add<GzipCompressionProvider>();
+            // 指定压缩的大小阈值,这里设置为1024字节
+            // 扩展一些类型 (MimeTypes中有一些基本的类型,可以打断点看看)
+            options.MimeTypes = ResponseCompressionDefaults.MimeTypes.Concat(new[]
+            {
+                    "text/html; charset=utf-8",
+                    "application/xhtml+xml",
+                    "application/atom+xml",
+                    "image/svg+xml"
+             });
+        });
     }
 
     public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
     {
+        // 响应压缩
+        app.UseResponseCompression();
         app.UseForwardedHeaders();
 
         if (env.IsDevelopment())