使用express我可以设置缓存的最大年龄,如下所示:
app.use(express.static(path)), { maxAge: 1234567 });
我有一个html文件,可以加载几个脚本和样式表。有没有办法控制单个文件的max-age?例如我想将我的JS库的年龄设置为6个月,而不是缓存经常更改的文件。
答案 0 :(得分:0)
除了maxAge之外,Express版本4 serve-static还有一个可选的回调 setHeaders 。 e.g。
var express = require('express');
var serveStatic = require('serve-static');
var app = express();
app.use(serveStatic('/path/to/files/')), {
maxAge: 0 ,
setHeaders : function (res, path) {
if (path === '/path/to/files/vendor-bundle.min.js') {
res.setHeader('Cache-Control', public, max-age=345600');
res.setHeader('Expires', new Date(Date.now() + 345600000).toUTCString());
}
}
});
对于不支持 setHeaders 的旧版本的,可以编写自定义中间件(如上所述)。