我一直试图让Microsoft.AspNetCore.ResponseCompression 2.1.1在一个以.net完整框架472为目标的.net核心项目应用程序上运行,但没有成功。
我已经把这个项目剥离到它的核心,只留下:
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
我的实现是否有任何明显的错误,会导致静态文件响应标头而不是echo:
content-encoding: gzip (or other)
是否可以挂接决定是否压缩请求的方法?
对于响应标头,它已经被压缩,并用Vary: Accept-Encoding
指示cache (vary) responses
。
可变
当服务器以值Accept Encoding向客户端和代理,Vary标头向客户端或代理指示应该根据接受请求的编码标头。返回内容的结果使用Vary:Accept Encoding标头时未压缩的响应被单独缓存。
您可以尝试以下不同的方法来查看不同的结果:
- Chrome:按
Ctrl + F5
检查响应标头 - 试试PostMan
- 试试Fiddler