我一直试图使Microsoft.AspNetCore.ResponseCompression 2.1.1在.net核心项目应用程序上工作,该应用程序将.net完整框架472定位为无效。
我将项目剥离到了核心,只剩下了:
public void ConfigureServices(IServiceCollection services)
{
services.AddResponseCompression(options =>
{
options.EnableForHttps = true;
});
}
public void Configure(IApplicationBuilder app)
{
app.UseResponseCompression();
app.UseStaticFiles();
}
我正在尝试让中间件压缩静态文件。
请求标头:
GET http://localhost:3721/css/Site.css HTTP/1.1
Host: localhost:3721
Connection: keep-alive
Accept: text/css
Accept-Encoding: gzip, deflate, br, *
响应头:
HTTP/1.1 200 OK
Date: Sat, 03 Nov 2018 01:20:21 GMT
Content-Type: text/css
Server: Kestrel
Last-Modified: Thu, 13 Jul 2017 16:35:14 GMT
Accept-Ranges: bytes
ETag: "1d2fbf600bbcfda"
Vary: Accept-Encoding
Content-Length: 730
我的实现中是否存在明显错误,会导致静态文件响应标头不回显:
content-encoding: gzip (or other)
是否可以插入用于决定是否压缩请求的方法?
答案 0 :(得分:1)
对于您的响应标头,它已经被压缩并用cache (vary) responses
指示Vary: Accept-Encoding
。
变化
当服务器将值为Accept-Encoding的值发送给客户端和 代理,Vary标头向客户端或代理表明它 应根据的值缓存(变化)响应 请求的Accept-Encoding标头。返回内容的结果 使用Vary:Accept-Encoding标头是压缩和 未压缩的响应将分别缓存。
您可以尝试以下不同方式以查看不同结果:
Ctrl + F5
检查响应标题。