相同js文件的内容长度或大小在服务器之间是不同的

content-length or size of the same js files are different across servers

所以我今天从我的本地主机部署了一个开发项目到开发服务器,我做了相当多的优化。我缩小了内容的大小,加快了渲染时间,一切看起来都很棒。我将代码发布到开发服务器,然后继续 chrome 测试所有内容,在调试工具的网络选项卡上查看发生了什么,并在两台服务器上禁用缓存。

本地主机:IIS 10.0
开发机器:IIS 8.5

结果如下:

DOMContentLoaded 都差不多:~1.5 秒
负载都差不多:~1.7 秒

但这就是事情变得奇怪的地方:

本地主机:传输 722KB
dev mach:传输 1.4MB

两台机器上的代码是一样的。所有 javascript 文件都已打包并缩小。所以我决定至少检查其中一个文件;我的捆绑和缩小 jquery 文件:

本地主机:38.6KB
开发机器:84.4KB

为什么会如此不同?我把两个文件都复制到记事本里,用beyond compare程序测试了两个文件上的文本,他们是一样的!我查看了两个保存文件的文件描述,都为 84KB。如果是这样,为什么 chrome 告诉我这个传入文件的文件大小是 38.6KB?如果发送的数据的比率相差 1:2,它们如何同时加载和呈现?

我现在在 IE11 上测试了这个

本地主机:383.84KB
开发机器:1.63MB

和我在 IE11 上的捆绑和缩小的 jquery 文件:

本地主机:38.6KB
开发机器:84.4KB

我想知道这是否与 IIS 有关? web.configs 两端几乎相同。或者如果 localhost 做的比 IIS 做的少?

检查两台机器上IIS静态动态压缩选项。

IIS 上启用动态压缩后,它在传输 files/pages 时默认使用 GZip 压缩。而这个 compresses/reduces 的大小 files/pages.