一般情况下可以通过 createReadStream然后再用管道进行在gzip var raw = fs.createReadStream(realPath); response.setHeader(“Content-Encoding”, “gzip”); stream = raw.pipe(zlib.createGzip()); stream.pipe(response);
但是如果是动态文件需要进行模版或者在线压缩之后,如果再进行gzip 难道处理好之后再存入文件然后在用流的形式进行gzip压缩?
在Node前面再挂一个Nginx做反向代理,顺便处理GZIP这些杂务,我是这么做的
如果不用Nginx的方法貌似静态文件比较好做,动态文件看了半天没有方案 我再观望一下吧,实在不行就Nginx
如果只用connect(或者express),可以使用compress中间件来压缩 如果使用了Nginx,也可以交给Nginx来压缩 总之,模板应该只做它最该做的事情(渲染),压缩是HTTP服务器做的
但是现在压缩应该在server层面的,但是我不知道如何把压缩好的或者说模版处理好的东西,通过res返回是进行压缩
这个需要框架支持了,在res.render()模版之后,需要对模版的字符串进行gzip压缩了
不是我想用的。。
compress中间件可以修改 res.write()
和 res.end()
,对所有输出都进行压缩,不用模板支持的。
<input>
<input>
<input>
<input>
<input>