2017-08-16 14 views
1

私はほぼ完全にアプリケーションシェルアーキテクチャのpwaとして設定されています(エクスプレスnode.jsバックエンドを使用して、最後の問題で過去を過ごすのに苦労しています。Workbox.js registerNavigationRoute見つからない/ htmlファイルを読み込んでいない

更新:私たちはまた、キャッシュにもcdnとしても高速に使用しています。それはdevですべて無効になっていますが、おそらくいくつかのヘッダーが物事を覗き見しています。

私はprecacheとworkbox-buildでキャッシュされたhtmlファイルを登録するためにregisterNavigationRouteを使用しています。私はこのメッセージが表示され、私のサービスワーカーは、最初のロードまたはハードリフレッシュにする場合罰金登録するが、私は定期的なリフレッシュを実行しようとするとき、私はこのエラーメッセージrouter.jsファイルの行140の周り

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 

と権利を取得します

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)$/ 
    ] 
}); 

ですUPDATE:ここには私の完全に生成されたsw.jsファイルへのリンクhttps://gist.github.com/nikse/11c531382f136e703bf20648f9421948

+0

パブリックアクセス可能なPWAのバージョンへのリンクを共有できますか?そうでない場合は、workwork-buildを使用している設定と、展開している最後の 'sw.js'ファイルを共有できますか? –

+0

ちょっと@JeffPosnick、申し訳ありません!私はあまりにも早く公開するヒット!質問は完全に更新されています。例とエラーメッセージ –

+0

@JeepPosnickこれはまだ開発中ですので、パブリックリンクはありませんが、あなたがチェックアウトしたい方法でファイルを送信してもよろしいですか?どうもありがとう! –

答えて

0

(ありますコメントから回答に移動する)

workboxSW.router.registerNavigationRoute("shell.html", { 
    cacheName: "inverse-shell", 
    whitelist: [...], 
    blacklist: [...] 
}); 

があなたのregisterNavigationRoute()ためcacheName: 'inverse-shell'設定を削除してみてくださいでした:ようregisterNavigationRoute()に見えますか?あなたのshell.htmlはその名前のキャッシュにはありません。それはprecache()に渡されたものに使用されるキャッシュにあり、それは既にデフォルトの場所であるregisterNavigationRoute()です。

関連する問題