Кэширование внешних активов с помощью Angular Service Worker - PullRequest
0 голосов
/ 25 сентября 2019

У меня есть приложение Angular 8 с настроенным сервисным работником.Мое приложение использует изображения внешнего аватара с сайта gravatar и сервера Amazon-S3.Изображения должны быть кэшированы работником сервиса.Но либо изображения никогда не кэшируются, либо изображения всегда кэшируются.

Когда я настраиваю внешние ресурсы в разделе assetGroups файла ngsw-config, внешние изображения всегда кэшируются, поэтому новое перезаписанное изображение будетникогда не загружаться.

при настройке внешних ресурсов в разделе den dataGroups файла ngsw-config внешние образы никогда не кэшируются.(dataGroups не предоставляют ресурсы?)

Полученные изображения имеют свойство "max-age", установленное в http-response-header, в 300 секунд.

"cache-control: max-age= 300 "

Вот мое содержимое файла ngsw-config:

{
  "index": "/index.html",
  "assetGroups": [
    {
      "name": "app",
      "installMode": "prefetch",
      "resources": {
        "files": [
          "/favicon.ico",
          "/index.html",
          "/*.css",
          "/*.js"
        ]
      }
    }, {
      "name": "assets",
      "installMode": "lazy",
      "updateMode": "prefetch",
      "resources": {
        "files": [
          "/assets/**",
          "/*.(eot|svg|cur|jpg|png|webp|gif|otf|ttf|woff|woff2|ani)"
        ],
        "urls": [
          "https://fonts.googleapis.com/**",
          "https://my-avatars.s3.amazonaws.com/**",
          "https://www.gravatar.com/avatar/**"
        ]
      }
    }
  ],
  "dataGroups": [{
    "name": "api",
    "urls": [
      "/api/**",
      "http://localhost:8080/**"
    ],
    "cacheConfig": {
      "maxSize": 100,
      "maxAge": "3m",
      "strategy": "freshness",
      "timeout": "5s"
    }
  }]
}

Я ожидаю, что sw будет проверять все файлы, пока не появится новая версия файла или не истечет максимальное время ожидания.достиг.

Что я делаю не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...