Hyd*_*erA 38 javascript gzip node.js express
Express和connect似乎已经删除了他们的gzip函数,因为它们效率太低.目前有没有可靠的gzip与express-js的解决方案?
gas*_*lin 82
Express 3.0现在支持compress():
var app = express();
// gzip
app.use(express.compress());
// static
app.use("/public", express.static(__dirname + '/public'));
// listen
app.listen(80);
Run Code Online (Sandbox Code Playgroud)
编辑 Express 4.0,压缩成为独立的中间件.所以你必须安装并导入才能使用它:
var compress = require('compression');
app.use(compress());
Run Code Online (Sandbox Code Playgroud)
Ste*_*las 31
Connect 2.0增加了对基于新的zlib内容的compress()中间件的支持,这些内容刚刚在Node Core API中出现.
您可以通过在package.json
文件中添加连接2.0来在快速服务器中使用它:
{
...
dependencies: {
"connect" : "2.x",
"express" : "2.x",
// etc..
}
}
Run Code Online (Sandbox Code Playgroud)
然后将以下逻辑应用到您的快速应用配置中:
// Create static file server with gzip support
var app = express.createServer(express.logger());
app.use(connect.compress());
app.use(express.static(__dirname + '/public'));
app.listen(80);
Run Code Online (Sandbox Code Playgroud)
请注意,这些东西仍然是新的,虽然我可以让它在本地工作,我的Heroku云应用程序抱怨在通过git部署时在预提交钩子期间对Compress 2.x的依赖:
-----> Heroku receiving push
-----> Node.js app detected
-----> Resolving engine versions
Using Node.js version: 0.4.7
Using npm version: 1.0.106
-----> Fetching Node.js binaries
-----> Vendoring node into slug
-----> Installing dependencies with npm
npm ERR! Error: No compatible version found: connect@'>=2.0.0- <3.0.0-'
Run Code Online (Sandbox Code Playgroud)
如您所见,他们仍在使用旧版本的节点(0.4.7).
更新:
实际上,我可以通过添加相应的engines
部分来让Heroku部署它package.json
:
{
...
"engines": {
"node": ">= 0.6.0 < 0.7.0"
}
}
Run Code Online (Sandbox Code Playgroud)
这些是使用http压缩测试仪时的结果:
更新2014年6月
你好,如果你现在正在读这篇文章.别忘了上面的内容只与Express 2.0有关.
Express 3.0和4.0使用不同的语法来启用http压缩,请参阅下面的gasolin帖子.
我也搜索了npm并找到了例如:
https://github.com/tomgallacher/gzippo
gzippo发音g-zippo是一个gzip中间件,用于Connect使用Compress以获得更好的性能.
最近开发了Gzippo(2天前),我认为这是一件好事.我无法告诉你有关生产用途的信息.你应该自己测试/基准测试.我也可能使用CDN作为实时站点或Nginx来托管我的静态文件而不是某些nodejs模块.
归档时间: |
|
查看次数: |
31336 次 |
最近记录: |