Как сделать так, чтобы сервис Angular работал для кеширования PDF файлов?

У меня есть приложение Angular 7 с настройкой сервисного работника. Но я только заметил, что когда я пытаюсь открыть ссылку PDF на моем сайте, они не работают.

Но если я открою консоль разработчика> приложение и нажму на Обход для сети, он будет работать нормально, также, если я отключу работника сервиса, он тоже будет работать нормально.

Вот мой ngsw-config.json файл.

{
  "index": "/index.html",
  "assetGroups": [
    {
      "name": "app-shell",
      "installMode": "prefetch",
      "updateMode": "prefetch",
      "resources": {
        "files": [
          "/index.html",
          "/manifest.json",
          "/ngsw-worker.js",
          "/scripts*.js",
          "/main*.js",
          "/polyfills*.js",
          "/runtime*.js",
          "/common*.js",
          "/*.css"
        ]
      }
    }, {
      "name": "assets-lazy",
      "installMode": "lazy",
       "updateMode": "lazy",
      "resources": {
        "files": [
          "/images/logo_red_white.svg",
          "/logo.png",
          "/assets/icons/**",
          "/*.js"
        ]
      }
    }
  ]
}

Когда я смотрю на вкладку сети в инструменте разработчика, я вижу, что PDF загружается из сервисного работника.

В любом случае я могу сказать работнику службы игнорировать PDF-файлы?

1 ответ

Решение

Почему вы не кэшируете файлы PDF. Таким образом, сервисный работник не будет вести себя некорректно с открытыми файлами, и вы сможете без проблем использовать PDF-файлы на своей странице. Для кэширования файлов PDF используйте ту же технику, что и для хранения или кэширования изображений.

Для получения дополнительной информации вы можете обратиться к этой ссылке Google.

https://developers.google.com/web/ilt/pwa/lab-caching-files-with-service-worker

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