我使用了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>
我在此网址中部署测试项目:
您可以使用this tools测试gzip支持。
答案 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文件。