代码之家  ›  专栏  ›  技术社区  ›  b24

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

  •  0
  • b24  · 技术社区  · 10 年前

    我使用Meteor和Iron路由器,并设置了许多服务器路由以返回带有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>
    

    我在此URL中部署测试项目:

    http://gzipminify.meteor.com/

    您可以使用 this tools .

    1 回复  |  直到 10 年前
        1
  •  2
  •   Tarang    10 年前

    Meteor已经为你的应用程序进行了gzip和缩小(在生产模式下)。

    只是为了不引起混乱,你的主应用程序文件 根文件 xxx.meteor.com上提供的文件不受此影响(包含类似index.HTML的HTML的文件)。

    还有这个index.html 喜欢 文件是包含js&css文件。包含应用程序HTML的实际js文件也确实是gzip的。

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

    在生产模式下,您的css&js也被缩小。

    您位于gzipminify.meteor.com的网站既没有静态资产,也没有CSS。

    另一方面

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

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

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