在 express js 4.4.1 中压缩文件 (gzip)
Compressing files (gzip) in express js 4.4.1
我使用 express js 应用程序作为网络服务器,但所有静态内容都已解压缩(js 和 css 文件)。我尝试了几个解决方案,例如使用压缩 https://github.com/expressjs/compression 但无法正常工作。
这是我的做法(仅与压缩使用相关的部分):
var app = module.exports = express();
// all environments
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(morgan('dev'));
app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json());
app.use(methodOverride());
app.use(cookieParser());
var cacheTime = 86; // 7 days
app.use(compression());
app.use(express.static(__dirname + '/public',{ maxAge: cacheTime }));
http.createServer(app).listen(app.get('port'), function () {
console.log('Express server listening on port ' + app.get('port'));
});
Express 中间件总是按照声明的顺序处理。
你有这个:
app.use(express.static(...));
app.use(compression());
表示一个请求是第一个被express.static()
处理的,当它能够处理这样一个请求时,它会立即产生一个响应,这个请求永远不会被传递给压缩中间件。
如果交换中间件的顺序,像这样:
app.use(compression());
app.use(express.static(...));
所有请求都将首先通过压缩中间件,它会设置一些东西以便响应被压缩。
我使用 express js 应用程序作为网络服务器,但所有静态内容都已解压缩(js 和 css 文件)。我尝试了几个解决方案,例如使用压缩 https://github.com/expressjs/compression 但无法正常工作。 这是我的做法(仅与压缩使用相关的部分):
var app = module.exports = express();
// all environments
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(morgan('dev'));
app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json());
app.use(methodOverride());
app.use(cookieParser());
var cacheTime = 86; // 7 days
app.use(compression());
app.use(express.static(__dirname + '/public',{ maxAge: cacheTime }));
http.createServer(app).listen(app.get('port'), function () {
console.log('Express server listening on port ' + app.get('port'));
});
Express 中间件总是按照声明的顺序处理。
你有这个:
app.use(express.static(...));
app.use(compression());
表示一个请求是第一个被express.static()
处理的,当它能够处理这样一个请求时,它会立即产生一个响应,这个请求永远不会被传递给压缩中间件。
如果交换中间件的顺序,像这样:
app.use(compression());
app.use(express.static(...));
所有请求都将首先通过压缩中间件,它会设置一些东西以便响应被压缩。