4

有没有办法在 ExpressJS 应用程序中为每个文件设置 Cache-Control 属性?我想对我的应用程序中文件的缓存进行精细控制......我该如何实现这一点?关于 Cache-Control 的最佳实践是什么?

4

2 回答 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 回答