プログレッシブWebアプリで遊んでいた。 Webアプリのインストールバナーを機能させようとしていますが、Lighthouseを使用してデバッグした後、service worker does not successfully serve the manifest's start_url
を受信し続けます(下図)。現在、Azureを使用してWebサイトをホストしています。
NEW:すべてのキャッシュ、start_url、およびサービスワーカーをチェックして、すべてが一致することを確認しました。しかし、それでも同じエラーが発生します。
start_url
なのか、service-worker
problemなのかわかりません。以下は私のコードです。
manifest.json
{
"short_name": "MY EXPERTS",
"name": "MYEXPERT",
"icons": [
{
"src": "Images/petronas_logo_192.png",
"type": "image/png",
"sizes": "192x192"
},
{
"src": "Images/petronas_logo_192.png",
"type": "image/png",
"sizes": "512x512"
}
],
"background_color": "#FFFFFF",
"theme_color": "#67BCFF",
"display": "standalone",
"start_url": "/Home/Index"
}
AddServiceWorker.js
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('/service-worker.js').
then(function (registration) {
// Registration was successful``
console.log('ServiceWorker registration successful with scope: ',
registration.scope);
}).catch(function (err) {
// registration failed :(
console.log('ServiceWorker registration failed: ', err);
});
}
service-worker.js
self.addEventListener('install', e => {
e.waitUntil(
caches.open('airhorner').then(cache => {
return cache.addAll([
'/',
'/?utm_source=homescreen',
'/Home/About',
'/Home/Index',
'/Home/Contact'
])
.then(() => self.skipWaiting());
})
)
});
self.addEventListener('activate', event => {
event.waitUntil(self.clients.claim());
});
self.addEventListener('fetch', event => {
event.respondWith(
caches.match(event.request).then(response => {
return response || fetch(event.request);
})
);
});
ブラウザーのキャッシュ:
サービスワーカーの登録 からメモ
サービスワーカーファイルを
/example/sw.js
に登録すると、サービスワーカーは、/example/
で始まるURLのページ(/example/page1/
、/example/page2/
)のfetch
イベントのみを表示します。
表示されたエラーとインラインで、この ドキュメント で指定されている場合、以下を確認します。
start_url
ファイルでmanifest.json
プロパティを定義します。- サービスワーカーが
start_url
の値に一致するリソースを適切にキャッシュするようにしてください。
また、これを確認してください tutorial そして、それがあなたを助けるかどうか確かめてください。