有没有办法在ExpressJS应用程序中为每个文件设置Cache-Control属性?我希望对我的应用程序中的文件缓存进行精细控制......我怎样才能实现这一目标? 什么是关于Cache-Control的最佳实践?
答案 0 :(得分:5)
app.use(function (req, res, next) {
if (req.url.match(/* some filter */)) {
res.setHeader('Cache-Control', ...)
} else if (req.url.match(/* some filter */)) {
res.setHeader('Cache-Control', ...)
}
next()
})
app.use(express.static(__dirname + '/public'))
无需复杂化。
答案 1 :(得分:0)
此线程很旧,但是有一种更简单的方法可以对静态文件实施基本的缓存控制。只需将选项对象添加到express.static()
内置中间件函数中,如下所示:
let options = {
maxAge: "1d"
}
app.use(express.static(__dirname + '/public', options))
默认情况下,这将对所有静态资产启用缓存控制。它将Cache-Control
标头设置为public, max-age=86400
。