需要推荐 Node.js Gzip 静态资源
那么,connect的gzippo好用吗?
我有两个问题,
1)如果我想提供静态javascript(我使用express),我可以只做gzippo并执行以下操作:
app.use(gzippo.staticGzip(__dirname + '/public'));
对吗?如果客户端浏览器不支持 gzip(极少数情况)怎么办?它会自动发送解压缩版本吗?另外,压缩文件会被缓存吗?或者针对每个请求进行压缩?
2)如果应用程序的get方法返回JSON,处理压缩结果的正确方法是什么?我应该首先检查 http.request 标头的“accept-encoding”并确保它支持 gzip,然后压缩 JSON 结果吗?或者gzippo会自动处理它?
还有一个问题: 将提供哪一个文件
3)如果我在公共文件夹中有一个未压缩的JS文件(例如my.js)和一个手动gzip压缩的JS文件(例如my.js.gzip),如果客户端脚本包含我必须指定 作为 ?
这个问题不仅在 Node.js 上,而且在普通的 apache 服务器上也是如此。 :) 谢谢。
so, is connect's gzippo good?
I have two questions,
1) if i want to serve static javascript ( i use express), I can just do gzippo and do that:
app.use(gzippo.staticGzip(__dirname + '/public'));
is that right? what if the client browser doesn't support gzip (in rare case)? will it automatically send the uncompress version? also, will the zipped file cached? or compress for every request?
2) If the app's get method returns JSON, what is the correct method to handle compress result? should I first check the http.request header's "accept-encoding" and make sure it support gzip, then compress the JSON result? or gzippo will automatically handle it?
one more question:
3) If I have a uncompressed JS file (e.g. my.js) and a manually gzipped JS file (e.g. my.js.gzip) in the public folder, which one will be served if client side script include is
do I have to specify as ?
that a question not just on node.js but also on normal apache server. :) thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
根据这一行:
https://github.com/tomgallacher/ gzippo/blob/master/lib/staticGzip.js#L121:
它将发送未压缩的文件。
我在评论中读到了这篇文章,所以我假设它现在将 gzip 压缩文件存储在内存中。但更重要的是它还使用客户端缓存。
我认为你的立场是正确的。我不相信 Gzippo 会处理其他路由,而只会处理静态文件夹。
其他一些提示:
According to this line:
https://github.com/tomgallacher/gzippo/blob/master/lib/staticGzip.js#L121:
It will send uncompressed file.
I read this in comment so I assume right now it stores gzipped file in memory. But even more important it also uses client side caching.
I think you stand correct. I don't believe Gzippo will handle other routes, but only static folder.
Some other tips:
考虑使用一些云 API 中间件,例如 AWS APIGateway、一些支持 GZipping 的 CDN,并且您始终可以使用 nginx 或 HAproxy 构建自己的反向代理服务器。请参阅此处的第 3 点:
http://goldbergyoni.com/checklist-best-practice -of-node-js-in-生产/
Consider using some cloud API middleware like AWS APIGateway, some CDNs supporting GZipping and you always can craft your own reverse proxy server with nginx or HAproxy. See bullet 3 here:
http://goldbergyoni.com/checklist-best-practice-of-node-js-in-production/