【发布时间】:2014-10-10 00:38:49
【问题描述】:
我已经做了好几个小时了..
我做的第一件事是遵循this 教程,其中包含以下代码:
var express = require('express');
var app = express();
// New call to compress content
app.use(express.compress());
app.use(express.static(__dirname + '/public'));
app.listen(3333);
当然代码已经过时了..我收到了这个错误:
Error: Most middleware (like compress) is no longer bundled with Express and must be installed separately. Please see https://github.com/senchalabs/connect#middleware.
所以我将代码更新为:
var express = require('express');
var app = express();
var compression = require('compression')
app.use(compression());
app.use(express.static(__dirname + '/_public' ));
app.listen(3333);
效果很好.. 但我没有看到压缩的证据(我怎么知道?通过查看 chrome 开发工具响应标头:
它没有像教程中那样的 gzip content-encoding 标头:
所以尝试改用zlib 库:
var express = require('express');
var app = express();
var maxAge = 31557600000;
var zlib = require('zlib');
app.use(express.static(__dirname + '/_public' ));
app.get('/*', function(req,res)
{
res.sendFile(__dirname + '/_public/index.html').pipe(zlib.createGunzip()).pipe(output);
});
app.listen(3333);
但这也没有成功..我现在几乎秃顶了..有什么帮助吗?
附言压缩docs 说您可以提供 zlib 选项,但无法提供任何示例/说明。
更新: 该问题已得到充分回答并被标记为这样(我讨厌移动目标问题)..但我不禁要问:那么您如何验证由于 gzip 压缩而修剪了多少原始有效负载?由于压缩/解压缩自然发生在幕后,因此 chrome 开发工具将在其网络选项卡中报告文件的原始大小:
【问题讨论】:
-
index.html的确切文件大小是多少?
标签: node.js express compression gzip http-compression