Не удалось установить заголовок контроля кэша для моих статических ресурсов Express - PullRequest
0 голосов
/ 22 февраля 2019

Я использую Express в бэкэнде и React (create-реагировать-приложение) в веб-интерфейсе.React создает все мои связанные ресурсы в каталоге client/build/static

В этом каталоге находятся три папки css, js, media.Я вижу, что у них максимальный возраст = 0 на вкладке сети консоли разработчика.

Итак, я пытаюсь использовать экспресс-статическое промежуточное ПО для установки заголовков Cache-Control для этих папок, написав следующий код вМой файл app.js, который находится в server каталоге

app.use(express.static(path.join(__dirname, "..", 
    "client/build/static"), {
       maxage: 31536000
}))

Но, похоже, он не имеет никакого эффекта.Кто-нибудь знает, как установить Cache-Control для папок в экспрессе

РЕДАКТИРОВАТЬ: - следуя ответу @ Giovanny, я выполнил исправления, но все же у меня установлен max-age = 0 для заголовков

request headers

Я думаю, это из-за установки по умолчанию заголовков запросов клиентом?

request headers

1 Ответ

0 голосов
/ 22 февраля 2019

Ваш код выглядит правильно, единственное, что вы устанавливаете опцию maxage вместо maxAge.Это работает, как и ожидалось:

app.use(express.static(path.join(__dirname, "..", 
    "client/build/static"), {
       maxAge: 31536000
}))

Вы можете увидеть список опций для статических файлов здесь: https://expressjs.com/en/api.html

Вы можете указать другим способом заголовок элемента управления кэшем, и он будет кешироватьсоответственно.Идея состоит в том, чтобы добавить вызов res.set () перед любым выводом.

res.set('Cache-Control', 'client/build/static, max-age=31557600');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...