如何在Sails.js中gzip JavaScript和CSS资源?

我正尝试在Sails.js(Node)应用程序中为我的资产启用gzip压缩。 在生产环境中启动应用程序时, assets/linker/jsassets/linker/styles中的所有资源都被连接,缩小,成功地成功(在Gruntfile中指定)。 以下输出文件被生成:

 .tmp/ public/ min/ production.js production.css 

我也想添加gzip压缩,因此我已经安装了grunt-contrib-compress并将压缩任务添加到Gruntfile中。 我可以通过成功压缩文件获得以下结果。

 .tmp/ public/ min/ production.js production.js.gz production.css production.css.gz 

我现在的问题是,服务器需要响应与gzip文件 (当客户端接受编码),而不是正常的,我找不到一个方法来做到这一点。 也许政策是这样做的风帆? 还是有另一种方式来使用快递中间件?

如果有帮助,这是当前的sails-linker任务,它将javascript production.js文件插入到标记中:

  ... prodJs: { options: { startTag: '<!--SCRIPTS-->', endTag: '<!--SCRIPTS END-->', fileTmpl: '<script src="%s"></script>', appRoot: '.tmp/public' }, files: { '.tmp/public/**/*.html': ['.tmp/public/min/production.js'], 'views/**/*.html': ['.tmp/public/min/production.js'], 'views/**/*.ejs': ['.tmp/public/min/production.js'] } }, ... 

提前谢谢了。

我build议你阅读这个github的问题( 默认情况下在Sails.js中启用Express压缩 ),以及这个stackoverflow的答案( 添加表示中间件的参数validation )的进一步的细节和sailsjs框架的方式。

希望这个帮助,如果遇到一些困难,请不要犹豫,询问更多细节。