有没有办法在 ExpressJS 应用程序中为每个文件设置 Cache-Control 属性?我想对我的应用程序中文件的缓存进行精细控制......我该如何实现这一点?关于 Cache-Control 的最佳实践是什么?
问问题
3727 次
2 回答
8
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'))
没必要把它弄复杂。
于 2013-01-24T05:09:40.843 回答
2
这个线程已经很老了,但是有一种更简单的方法来实现对静态文件的基本缓存控制。只需向express.static()
内置中间件函数添加一个选项对象,如下所示:
let options = {
maxAge: "1d"
}
app.use(express.static(__dirname + '/public', options))
默认情况下,这将为您的所有静态资产启用缓存控制。它会将Cache-Control
标题设置为public, max-age=86400
.
于 2020-07-14T20:19:04.043 回答