ZEIT Now Угловая ручка PWA 404

У меня есть PWA IONIC / Angular, размещенный на ZEIT Now. Я заметил, что иногда после развертывания приложение при запуске имеет пустую страницу. После исследования я увидел, что после развертывания браузер хочет получить некоторые кешированные .js файлы.

Обычно ZEIT Now просто показывает 404 или что-то в этом роде или поднимает статус http 404. Но я заметил, что ответом был index.html (со статусом 202), который браузер не мог обработать, потому что он ожидает javascript, а не text / html.

Мой текущий now.json

{
    "version": 2,
    "name": "my-app",
    "routes": [
      {
        "src": "dist/main.*.js",
        "headers": { "Cache-Control": "s-maxage=0, max-age=0" }
      },
      {
        "src": "dist/ngsw.json",
        "headers": { "Cache-Control": "s-maxage=0, max-age=0" }
      }
    ] 
  }

Как мне с этим справиться?


person fransyozef    schedule 07.02.2020    source источник


Ответы (2)


Возможно, вы можете попробовать 404 несуществующих хешированных .js файла? Вот несколько шагов:

  1. Используйте Расширенные настройки проекта, чтобы избавиться от префикса dist.
  2. Если вы хотите использовать routes (ссылку), после исправления "dist "проблема с префиксом, попробуйте:
    "routes": [
      { "handle": "filesystem"},
      {
        "src": "/main.*", "status": "404", "dest": "/404"
      }
    ] 
person paulogdm    schedule 07.02.2020
comment
хм никогда не думал об этом. Я это проверю - person fransyozef; 08.02.2020

Angular определяется автоматически, и добавляется маршрут с подстановочными знаками, так что любой маршрут, не соответствующий статическому активу, будет обслуживать /index.html.

https://zeit.co/docs/v2/build-step#optimized-frameworks

Похоже, что лучшим решением для вас было бы отключить хеширование файлов, чтобы ваши ресурсы js / css не переименовывались каждый раз.

ZEIT Now уже очищает кеш CDN, поэтому вам не нужно беспокоиться об устаревших файлах.

https://zeit.co/docs/v2/network/caching

person styfle    schedule 07.02.2020
comment
но нарушит ли это служебный работник, обнаруживший новую версию моего развернутого приложения? - person fransyozef; 08.02.2020
comment
Вы не поделились содержимым своего сервис-воркера, поэтому я не могу быть уверен. Но тот факт, что вы используете сервис-воркер, заставляет меня думать, что проблема заключается в кешировании сервис-воркера, а не в кешировании CDN. - person styfle; 08.02.2020