使mod_rewrite,manifest.json和cache.addAll()正常播放

时间:2018-11-01 21:33:37

标签: cakephp-2.0 manifest service-worker progressive-web-apps

我正在构建一个渐进式Web应用程序,因此需要聘请一名服务人员。我已经成功做到了,但是当我运行Lighthouse和/或尝试脱机工作时,看起来适用于manifest.json的URL不适用于该工作线程。我使用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.

在我的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 个答案:

没有答案