我正在尝试在Sails.js(Node)应用程序中为我的资产启用gzip压缩。在生产环境中启动应用程序时,assets/linker/js
和assets/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']
}
},
...
非常感谢提前。
答案 0 :(得分:6)
我建议你阅读这个github问题(Enable Express compression in Sails.js by default),以及这个stackoverflow答案(Add express middleware for param validations)以获取更多细节和sailsjs框架方式。
希望得到这个帮助,如果遇到一些困难,请不要犹豫,详细询问。