Laravel中的Workbox-服务工作者已激活但离线不起作用

时间:2018-08-02 08:49:23

标签: laravel service-worker workbox workbox-webpack-plugin

我有一个laravel项目,我想使用workbox为我的应用生成服务工作者。

所以我安装了workbox-cli,运行了workbox wizard,我得到了:

//workbox-config.js
module.exports = {
  "globDirectory": "public/",
  "globPatterns": [
    "**/*.{json,css,ico,svg,ttf,php,js}"
  ],
  "swDest": "public/sw.js"
};

运行workbox generateSW时,我将得到:

//public/sw.js
importScripts("https://storage.googleapis.com/workbox-cdn/releases/3.4.1/workbox-sw.js");

self.__precacheManifest = [
  {
    "url": "content/1/manifest.json",
    "revision": "5cd897bcd50eab43f4e1502f17b86cb9"
  },
  //... and others

].concat(self.__precacheManifest || []);
workbox.precaching.suppressWarnings();
workbox.precaching.precacheAndRoute(self.__precacheManifest, {});

然后,我在sw.js中注册app.js

$(document).ready(function() {
    console.log("document ready: ");
    if ('serviceWorker' in navigator) {
      navigator.serviceWorker.register('./sw.js')
      .then(function(registration) {
        console.log("Service Worker Registered", registration);
      })
      .catch(function(err) {
        console.log("Service Worker Failed to Register", err);
      })
    }
//...
})

启动页面时,我可以看到sw.js已在“应用程序”选项卡中注册并激活。而且我还要检查所有要缓存的文件的缓存存储。但是无论如何,当我离线时,仍然无法显示缓存的内容。

我只用一页html和1 js尝试了相同的代码(以上所有内容),并且一切正常。在控制台中,我什至可以看到来自workbox的调试消息:

enter image description here

但是我的Laravel应用程序却没有。 我怀疑ImportScript中的Laravel不起作用,但是我不确定如何调试它。

0 个答案:

没有答案