angular 2中的bundle.js.gz文件是什么?

4

我正在使用 ng-cli 来构建我的应用程序。当我运行 ng build --prod 命令时,会出现两个文件:main.bundle.js 和 main.bundle.js.gz。第二个文件是什么?这个文件有什么好处呢?

2个回答

8

服务器和客户端之间的HTTP传输几乎总是使用压缩,而在大多数情况下使用的是gzip。

因此,对于传输时间来说,重要的不是您的bundle.js的大小,而是bundle.js.gz的大小,因为内容实际上总是以其gzip压缩的形式发送。

当请求bundle.js时,服务器会即时进行gzip压缩并将其放在网络中。因此,gzip会在每个请求上运行,这对于静态内容来说效率低下。

此外,gzip的性能随着压缩级别的提高而显著下降(可以查看这篇文章)。如果可能的话,在实时处理时使用最高的压缩级别是不高效的。

一个正确配置的Web服务器应该在请求gzip版本的bundle.js时发送bundle.js.gz,因此您可以使用gzip提供的最高压缩级别。

在我看来,除非您的服务器主要提供可以提前压缩的静态内容,否则这种性能提升几乎可以忽略不计。对于小型应用程序,静态内容和API都是从同一台机器提供的,应该几乎没有影响。


讲解得很清楚。谢谢 :) - Manish
@user32 我有一个使用app.js.gz的Angular2应用程序,但浏览器不会处理该文件。我为此提出了一个问题:http://stackoverflow.com/questions/41047617/angular2-gzip-issue-when-i-run-my-app - AngularM
@user32 我基本上只想让app.js.gz文件能够在浏览器中正常工作,以便我的angular2应用程序能够运行。我使用Firebase进行托管,并使用Cloudflare。我需要进行一些设置更改吗? - AngularM
@AngularM 只需检查您的服务器是否支持gzip。 - Manish

1

压缩文件夹是为服务器准备的。您的服务器必须具备这样的配置。将其写入服务器配置文件中,以便它们可以发送压缩文件夹。

enter image description here enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接