SPA - Нужно ли отключать HTTP-кеш серверов для всех ресурсов, связанных с pwa? - PullRequest
1 голос
/ 05 апреля 2019

Должны ли какие-либо связанные с PWA ресурсы обслуживаться какими-либо заголовками кэша с сервера, или мы должны убрать классическое http-кэширование с пути, полностью отключив его?

А именно, для чего должны быть заголовки http кеша:

  1. файл манифеста

    В связи с этим, как новые версии файла манифеста (например, измененного favicon) попадают на клиент?

  2. работник службы js file (это немного сложно, потому что браузеры проверяют наличие новых версий каждые 24 часа, поэтому некоторое кэширование может быть хорошим?)

  3. index.html (точка входа в спа)

Насколько я понимаю, он должен быть полностью отключен, и весь кеш должен обрабатываться сервисным работником, но, похоже, существует другая информация и трудно извлечь лучшие практики.

1 Ответ

1 голос
/ 05 апреля 2019

Есть некоторые рекомендации на https://web.dev/reliable/http-cache, вместе с рядом других ресурсов в сети.

В целом, создание PWA и представление сервисного работника не изменяет лучшие практики, которые выследует следить за кэшированием HTTP.

Для ресурсов, которые содержат информацию о версиях в своих URL (например, /v1.0.0/app.js или /app.1234abcd.js), и вы знаете, что содержимое данного URL даже не изменится,вы должны использовать Cache-Control: max-age=31536000.

Для ресурсов, которые не включают информацию о версиях в свои URL (как большинство документов HTML, а также /manifest.json, если вы не включаете хэш), вы должныустановите Cache-Control: no-cache вместе с ETag или Last-Modified, чтобы обеспечить повторную проверку ранее кэшированного ответа перед использованием.

Для самого файла рабочего сервиса современные браузеры будут игнорировать Cache-Control header значение, которое вы устанавливаете по умолчанию, поэтому это не имеет значения.Но все же рекомендуется использовать Cache-Control: no-cache, чтобы старые браузеры проверяли его перед использованием.

...