使用static()、staticCache()和compress()node.js连接中间件
我有一个Express 3.0应用程序,我正在尝试使用使用static()、staticCache()和compress()node.js连接中间件,node.js,express,connect,Node.js,Express,Connect,我有一个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()); ap
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个缓存命中率
很明显,我做错了什么(我猜订单或选项搞乱了),但我不知道是什么。有没有人能举出这三个中间件一起正常工作的例子?- 首先放置
作为第一个中间件,请记住中间件位于FIFO堆栈中app.use(express.compress())
- 将
部分放在会话部分之前,更好的做法是将它们分成单独的路由(/app-带cookie、会话和bodyParser,/static-不带cookie)static
- 哦,如果您想使用更成熟的静态服务组件,那么就不要再考虑
了,它已被弃用,并且与staticCache
不兼容static