【发布时间】:2020-09-09 16:49:19
【问题描述】:
我是服务器在 ASP.NET MVC 站点中推送一些 CSS 文件,就像这样在控制器中:
public ActionResult Index()
{
var cssToPush = new[]
{
"/bundle/file1.min.css",
"/bundle/file2.min.css",
};
foreach (var file in cssToPush)
{
Response.PushPromise(file);
}
return View(GetModel());
}
执行此操作时,我在 Chrome 网络选项卡中看到 CSS 文件未使用 GZIP 压缩,它们使用的是 44KB。
当我跳过服务器推送时,CSS 文件使用 GZIP 压缩,它们使用 14KB。
我的理论是,这是因为服务器不一定知道客户端是否会接受 GZIP 压缩,因此它会以未压缩的资产进行响应。但是,我认为这是非常常见的,并且必须有一些标准方法来启用服务器推送资产的 GZIP 压缩。我会考虑在文件系统上手动 GZIP 压缩它们是非标准且繁琐的。
其他信息:
- 一些新的 Windows Server 实例(我认为是 Windows Server 2016 或 2019)上的 IIS 10。
- 我正在使用 HTTPS 并在网络选项卡中确认了“h2”(即 HTTP/2)。
- 我确认文件正在被服务器推送到网络选项卡的“发起者”列中。
【问题讨论】:
标签: asp.net-mvc iis gzip