gzip和minify服务器路由响应在流星和铁路由器

时间:2015-04-01 11:00:05

标签: javascript node.js meteor httpresponse iron-router

我使用了Meteor和Iron-router并设置了许多服务器路由来返回一些带有Node.js响应对象的HTML。

现在我想缩小并启用 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>

我在此网址中部署测试项目:

http://gzipminify.meteor.com/

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

1 个答案:

答案 0 :(得分:2)

Meteor已经gzips并缩小(在生产模式下)您的应用程序。

只是不要让主应用程序文件混淆xxx.meteor.com上提供的根文件不受此影响(包含类似于index.html的HTML)。

此index.html LIKE 文件是包含对您的js&amp; amp;的引用的裸文件。 css文件。包含应用程序HTML的实际js文件也确实是gzip压缩文件。

其余的静态资产(css,js,images等)都是gzipd。

在生产模式中你的css&amp; js也被缩小了。

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

另一方面

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

网页是否已压缩:(http://test.meteor.com

为否

对于使用铁路由器的自定义服务器端呈现路由,您可以通过将Router.onBeforeAction而不是app.use的中间件与您选择的压缩中间件(nodejs)包含在一起来gzip文件。