我有一个Express 3.0应用,我正在尝试使用static()
,staticCache()
和compress()
中间件来提供和压缩我的静态文件。这是我目前的app.configure()
函数:
app.configure(function() {
app.use(express.favicon(__dirname + '/public/favicon.ico', {maxAge: 86400000}));
app.use(express.bodyParser());
app.use(express.cookieParser('foo'));
app.set('views', __dirname + '/views');
app.engine('.html', mustache({cache: true}).render);
app.use(express.session({ store: sessionStore, secret: 'foo'}));
app.use(express.staticCache());
app.use(express.static(__dirname + '/public', {maxAge: 86400000}));
app.use(express.compress());
});
// routes are loaded here
使用此配置,YSlow报告我的.css和.js文件未压缩,如果不清除浏览器并多次刷新页面,我无法获得缓存命中。我还尝试在staticCache中间件中输入一个调试语句来报告缓存命中并运行ab -n 10000 -c 500显示0缓存命中。
显然我做错了(我猜测订单或选项搞砸了)但我无法弄清楚它是什么。有没有人有这三个中间件一起正常工作的工作示例?
答案 0 :(得分:1)
app.use(express.compress());
作为第一个中间件,记住FIFO堆栈中存在的中间件...... static
部分放在会话部分之前,更好的是,将它们分成不同的路径(/ app - 使用cookies,session和bodyParser,/ static - 没有)st
staticCache
它已被弃用且与static
不兼容