【问题标题】:Enable Gzip Compression with Meteor使用 Meteor 启用 Gzip 压缩
【发布时间】:2013-01-05 11:04:23
【问题描述】:

在使用 Meteor 时,无论它是在本地、meteor.com 还是 heroku 上托管,是否有一种通用的方法来启用 gzip 压缩?如果我只想在 Heroku 托管的 Meteor 应用上进行 gzip 压缩,如何启用?

【问题讨论】:

    标签: heroku gzip meteor


    【解决方案1】:

    在本地运行 Meteor 时似乎没有使用 Gzip 压缩。

    当您执行meteor bundle 命令时,生成的捆绑包包含一个服务器,该服务器默认使用“gzippo”连接中间件 [1] 执行 gzip 压缩。

    您可以通过解压缩 tarball 并编辑来查看(和修改)服务器文件: 服务器/server.js。

    [1]http://tomg.co/gzippo

    【讨论】:

    • 是的,由流星包生成的压缩包被 gzip 压缩。但是,1) 打包、组合的 Javascript 未经过 gzip 压缩,从而减慢了初始加载时间,2) 更重要的是,客户端/服务器通信或 /public 内容均未经过 gzip 压缩,从而在发布较大的数据集时对性能造成很大影响。
    • 抱歉,我的回答没有更具体。回复:您的评论,#1 不正确。在从生产包发送的 3 个初始资产中,只有 HTML 没有经过 gzip 压缩。 CSS 和 JS 资源被合并、缩小和压缩。 JS 是最重要的,因为它往往是最大的有效载荷。您可以通过您选择的工具记录 Content-Encoding 响应标头来验证这一点。
    • #2 你是对的。此时(0.5.3)每个 xhr 响应都没有被压缩。正如我在答案中提到的, server.js 文件可以修改。不幸的是,我对在 xhr 响应中添加 gzippo 过滤器的工作原理知之甚少。