public void ConfigureServices(IServiceCollection services)
{
....
// 配置gzip 与 br的压缩等级为最优
services.Configure<BrotliCompressionProviderOptions>(options => {
options.Level = CompressionLevel.Optimal;
});
services.Configure<GzipCompressionProviderOptions>(options => {
options.Level = CompressionLevel.Optimal;
});
// 压缩
services.AddResponseCompression(options => {
options.EnableForHttps = true;// 启用HTTPS的压缩
//options.Providers.Add<BrotliCompressionProvider>();
options.Providers.Add<GzipCompressionProvider>();
// 拓展一些类型
options.MimeTypes = ResponseCompressionDefaults.MimeTypes.Concat(new[]
{
"text/html; charset=utf-8",
"application/xhtml+xml",
"application/atom+xml",
"image/svg+xml"
});
});
services.AddResponseCaching(); // 缓存
//解决中文被编码, 如页面显示 title是中文,但查看源代码是你好
services.AddSingleton(HtmlEncoder.Create(UnicodeRanges.All));
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
// 使用压缩缓存中间件 应该放在最上面,否则不起作用
app.UseResponseCompression();
// 使用缓存中间件
app.UseResponseCaching();
...
}
netcore 启用gzip压缩及缓存
秦宇升2025-02-21 13:12
相关推荐
罗超驿17 小时前
JavaEE进阶之路:从Web架构原理到HTML标签全解析DogDaoDao1 天前
OpenBrowser 深度解析:让 AI 真正「用上」浏览器的自主代理框架jieyucx5 天前
Nuxt4阶段六:工程化与进阶 —— 模块、中间件、插件、TS 与测试jieyucx7 天前
Nuxt阶段二:核心概念 —— 路由、布局、组件与 Composableskali-Myon8 天前
深入 MySQL 内核:从临时哈希表分配机制详解 Floor 报错注入核心原理钛态10 天前
前端安全防线:CSRF 攻击链路与双重 Token 校验的工程实现钛态10 天前
AI 组件生成评测:别只看页面能不能渲染shuoshuohaohao13 天前
《HTTP协议》湮w19 天前
JavaWeb(三)JavaScript详细讲解还是鼠鼠20 天前
AI掘金头条新闻系统 (Toutiao News)-缓存相关推荐新闻