gzip 和缩小流星和铁路由器中的服务器路由响应

gzip and minify server route response in meteor and iron-router

我使用 Meteor 和 Iron-router 并将许多服务器路由设置为 return 一些 HTML 和 Node.js 响应对象。

现在我想 minify 并启用 gzip 作为响应。 如何做到这一点?

这是我的路线代码:

Router.route('/', function () {
    var res = this.response;
    var html =  "<!DOCTYPE html>\n" +
        "<html>\n" +
        "    <head>\n" +
        "    </head>\n" +
        "    <body>\n" +
        "        test\n" +
        "    </body>\n" +
        "</html>";
    res.end(html);
}, { where: 'server' });

这是页面结果:

<!DOCTYPE html>
<html>
    <head>
    </head>
    <body>
        test
    </body>
</html>

我想要缩小版如下:

<!DOCTYPE html><html><head></head><body>test</body></html>

我在此部署测试项目URL:

http://gzipminify.meteor.com/

您可以使用 this tools 测试 gzip 支持。

Meteor 已经对您的应用进行 gzip 压缩和压缩(在生产模式下)。

为了不引起混淆,您的主应用程序文件 根文件 可用 xxx.meteor.com 不受此影响(包含 HTML类似于 index.html).

此外,此 index.html LIKE 文件是包含对您的 js 和 css 文件的引用的裸文件。包含您的应用程序 HTML 的实际 js 文件确实也被 gzip 压缩了。

其余的静态资源(css、js、图像等)都是 gzipd。

在生产模式下,您的 css 和 js 也会缩小。

您在 gzipminify.meteor.com 的站点没有静态资产,也没有 CSS。

另一方面

网页是否压缩:http://test.meteor.com/5166d4fcc07e1605cbe979ef217942271d8badac.js

网页是否压缩:NO for (http://test.meteor.com)

对于使用 Iron 路由器的自定义服务器端渲染路由,您可以通过使用 Router.onBeforeAction 而不是 app.use 和您选择的压缩中间件 (nodejs) 包含中间件来 gzip 文件。