我几乎完全设置为具有应用程序shell体系结构的pwa,使用像前端(但使用mithril作为渲染引擎)的反应,并使用express node.js后端和ssr,但努力在最后一个问题上过去。Workbox.js registerNavigationRoute找不到/加载html文件
更新:我们也快速使用缓存和作为我们的cdn。它在开发中都是禁用的,但是也许有些标题是偷偷摸摸的,并与事情搞砸了?
我正在使用registerNavigationRoute注册我的html文件,该文件也通过预缓存和工作箱构建缓存。我的服务人员注册罚款第一负载或硬刷新的时候,但是当我尝试做一个常规刷新我收到此错误信息
The FetchEvent for "http://localhost:8000/article/35474-a-fear-of-heights-
doesn-t-stop-this-dad-from-seeing-a-thrilling-view" resulted in a network
error response: an object that was not a Response was passed to
respondWith().
Promise resolved (async)
self.addEventListener @ router.js:140
和对周围线router.js的140文件我看到这则消息
message: 'The router is managing a route with a response.',
所以我想我的节点路线是拧它吗?我不完全确定,但任何帮助将不胜感激!
这里是我的构建设置
gulp.task "serviceworker", ->
options =
globDirectory: "./dist/app/"
swSrc: "./dist/app/workbox.js"
swDest: "./dist/app/service-worker.js"
globPatterns: [
"shell.html"
"head.js"
"client.js"
"ads.client.js"
"css\/inline.css"
"css\/main.css"
"icons\/*.png"
"favicons\/*.png"
"fonts\/{oswald,pt-sans,icomoon}*.woff2"
]
options.dontCacheBustUrlsMatching = /icomoon\.woff2$/
unless debug
options.dontCacheBustUrlsMatching = /(icomoon\.woff2|\.(js|css))$/
workboxbuild.injectManifest(options).then() ->
console.log "Service workers generated."
.catch (err) ->
console.log "[ERROR] This happened: #{err}"
,这里是我的导航路线
workboxSW.router.registerNavigationRoute("shell.html", {
cacheName: "inverse-shell",
whitelist: [
/^\/$/,
/^\/(article|channel)/,
/^\/(science|mind-and-body|culture|innovation|entertainment)$/
],
blacklist: [
/^\/(sitemap|feed|amp|inews)/,
/^\/(user|about|archive|browse|search)/,
/^\/(newsletter|privacy-policy|terms-of-service|dmca)$/
]
});
+0
你能分享一个链接到PWA的公开访问版本吗?如果没有,你可以分享你正在使用的工作工作站的配置,以及你正在部署的最终的'sw.js'文件吗? –
+0
嘿@JeffPosnick,对不起!我打太早发布!问题是完全更新瓦特/示例和错误消息 –
+0
也@JeffPosnick这仍在开发中,所以没有公共链接,但我很高兴发送任何文件你想要检查出你的方式。非常感谢! –