我有一个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
的调试消息:
但是我的Laravel
应用程序却没有。
我怀疑ImportScript
中的Laravel
不起作用,但是我不确定如何调试它。