Получение mod_rewrite, manifest.json и cache.addAll() для хорошей игры

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

С маяка:

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

В моем manifest.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, но сейчас это невозможно, и в любом случае, мне нужно, чтобы он работал на моем локальном компьютере.

0 ответов

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