我希望快速路由器定义的所有路由都具有与资产中间件不同的max-age
。
对于快速静态中间件,我使用。
为所有请求设置max-age
标头
app.use(express.static('public', { maxAge: '1d' }));
我尝试在应用级别设置此功能:
express.use(function (req, res, next) {
res.setHeader('Cache-Control', 'public, max-age=86400');
return next();
});
虽然这适用于所有路由,但它也会覆盖静态中间件的max-age
。
答案 0 :(得分:1)
如评论中所述,静态中间件是在设置cache-control
标头的中间件之后定义的。由于 serve-static
模块不会覆盖已存在的标头,因此静态文件的maxAge
值不会反映在标头中。
要解决此问题,可以在其他中间件之前移动静态中间件。因此,永远不会到达静态文件的其他中间件。