私は次のスキャフォールディングされたエクスプレスアプリケーションを持っています:
var
express = require('express')
, routes = require('./routes')
, user = require('./routes/user')
, http = require('http')
, path = require('path')
, _ = require('underscore');
var app = express();
app.configure(function(){
app.set('port', process.env.PORT || 5000);
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.compress());
app.use(express.responseTime());
app.use(require('less-middleware')({ src: __dirname + '/public' }));
app.use(express.static(path.join(__dirname, 'public')));
});
app.configure('development', function(){
app.use(express.errorHandler());
});
app.get('/', routes.index);
app.get('/users', user.list);
http.createServer(app).listen(app.get('port'), function(){
console.log("Express server listening on port " + app.get('port'));
});
エクスプレスジェネレーターによって生成されたコードに加えた唯一の変更:
app.use(express.compress());
app.use(express.responseTime());
問題: LESS に処理されたファイルは gzip 圧縮され、応答時間の X-HTTP ヘッダーがありますが、コントローラー (HTML ページ) からの出力は gzip 圧縮されず、ヘッダーなしで提供されます。
たぶん私は接続ミドルウェアが間違っていることを理解していますか?