Получение mod_rewrite, manifest.json и cache.addAll () для хорошей игры - PullRequest
0 голосов
/ 02 ноября 2018

Я создаю Progressive Web App, и поэтому мне нужно сделать работника сервиса. Я успешно сделал это, но когда я запускаю Lighthouse и / или пытаюсь работать в автономном режиме, он выглядит так же, как URL-адрес, который работает для manifest.json не работает для работника. Я использую CakePHP в качестве бэкэнда, и он использует mod_rewrite для перезаписи URL как таковой: domain.com/controller/action. Таким образом, gamesite.com/games возвращает индексную страницу контроллера Game.

От маяка:

Service worker does not successfully serve the manifest's start_url, Timed out waiting for fetched start_url.

В моем манифесте. Json,

"start_url": "/games",

Мой worker.js:

self.addEventListener('install', e => {
  e.waitUntil(
    caches.open(cacheName).then(cache => {
      return cache.addAll([
        'js/compiled/inside.js',
        'games'
      ])
      .then(() => self.skipWaiting());
    })
  );
});

Я прекрасно храню свои скомпилированные .js, но мне нужно получить сам start_url, который скрывается / перезаписывается mod_rewrite. Когда я просто помещаю «игры», ну, конечно, он думает, что это каталог, и обрабатывает его как строку, которую нельзя кэшировать. Каждый учебник, который я вижу, ссылается на index.html или аналогичный, к которому у меня нет доступа. Я подозреваю, что если бы я пошел в производство, я мог бы жестко закодировать URL, но сейчас это невозможно, и в любом случае мне нужно, чтобы он работал на моем локальном компьютере.

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