使用ExpressJS为每个文件设置Cache-Control

时间:2013-01-24 03:04:40

标签: node.js express cache-control

有没有办法在ExpressJS应用程序中为每个文件设置Cache-Control属性?我希望对我的应用程序中的文件缓存进行精细控制......我怎样才能实现这一目标? 什么是关于Cache-Control的最佳实践?

2 个答案:

答案 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