Настройка Cache-Control для каждого файла с помощью ExpressJS

Есть ли способ установить свойство Cache-Control для файлов в вашем приложении ExpressJS? Я хотел бы получить детальный контроль над кэшированием файлов в моем приложении... как мне этого добиться? Каковы лучшие практики в отношении Cache-Control?

1 ответ

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'))

Не нужно усложнять.

Этот поток довольно старый, но есть более простой способ реализовать базовое управление кешем для статических файлов. Просто добавьте объект параметров вexpress.static() встроенная функция промежуточного программного обеспечения, например:

let options = {
    maxAge: "1d"
}

app.use(express.static(__dirname + '/public', options))

Это по умолчанию включит контроль кеширования для всех ваших статических ресурсов. Это установило быCache-Control заголовок в public, max-age=86400.

Другие вопросы по тегам