需要推荐Node.js Gzip静态资源

时间:2011-06-25 23:28:53

标签: javascript node.js gzip compression static-content

那么,连接的gzippo好吗?

我有两个问题,

1)如果我想提供静态javascript(我使用快递),我可以做gzippo并做到这一点:

app.use(gzippo.staticGzip(__ dirname +'/ public'));

是吗?如果客户端浏览器不支持gzip(在极少数情况下)怎么办?它会自动发送解压缩版本吗?此外,压缩文件是否会被缓存?或压缩每个请求?

2)如果app的get方法返回JSON,那么处理压缩结果的正确方法是什么?我应该先检查http.request标头的“accept-encoding”并确保它支持gzip,然后压缩JSON结果吗?或者gzippo会自动处理吗?


还有一个问题: 3)如果我在公共文件夹中有一个未压缩的JS文件(例如my.js)和一个手动gzipped JS文件(例如my.js.gzip),如果客户端脚本包含的话,将提供哪个文件

我必须指定为?

这个问题不仅在node.js上,而且在普通的apache服务器上。 :) 谢谢。

2 个答案:

答案 0 :(得分:3)

  

如果客户端浏览器没有,该怎么办?   支持gzip(在极少数情况下)?会吗   自动发送解压缩   版本

根据这条线:

https://github.com/tomgallacher/gzippo/blob/master/lib/staticGzip.js#L121

if (!~acceptEncoding.indexOf('gzip')) {
            return pass(filename);
        }

它将发送未压缩的文件。

  

此外,压缩文件会被缓存吗?要么   压缩每个请求?

//This is storing in memory for the moment, need to think what the best way to do this.

我在评论中读到这个,所以我现在假设它将gzipped文件存储在内存中。但更重要的是它还使用客户端缓存。

  

如果app的get方法返回JSON,   什么是正确的处理方法   压缩结果?我应该先检查一下   http.request标题   “接受编码”并确保它   支持gzip,然后压缩JSON   结果?或gzippo会自动   处理它?<​​/ p>

我认为你站得对。我不相信Gzippo会处理其他路线,但只会处理静态文件夹。


其他一些提示:

答案 1 :(得分:0)

考虑使用一些云API API中间件,如AWS APIGateway,一些支持GZipping的CDN,您始终可以使用nginx或HAproxy制作自己的反向代理服务器。见这里的子弹3: http://goldbergyoni.com/checklist-best-practice-of-node-js-in-production/