正在玩渐进式的网络应用程序。我一直试图使网络应用程序安装横幅工作,但我一直收到service worker does not successfully serve the manifest's start_url
后,我调试使用灯塔(下图)。目前我托管我的网站使用Azure。
**NEW:**我检查了我所有的缓存,start_url,还有我的service worker来查看所有的匹配。但是它仍然给我同样的错误。
我不确定这是我的start_url
还是我的service-worker
问题。下面是我的代码。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);
})
);
});
我的浏览器缓存:
6条答案
按热度按时间1szpjjfi1#
从注册A服务工作人员注意到,
如果我们在
/example/sw.js
注册服务工作者文件,则服务工作者将仅看到URL以/example/
(即/example/page1/
、/example/page2/
)开头的页面的fetch
事件。内联显示的错误并在此documentation中给出,检查以下内容:
1.在
manifest.json
文件中定义start_url
属性。1.确保服务工作进程正确缓存与
start_url
的值匹配的资源。另外,检查这个tutorial,看看它是否会帮助你。
ykejflvf2#
只是一个注意...你注意到上面的页面是通过“https”提供的。但是,如果你其他的一切都正确,并且没有使用https,你会得到同样的错误消息。
r55awzrz3#
有家伙,一直挣扎着同样的问题,只是为了发现我的html链接标记丢失,请确保您是在您的网站标题上指出您的清单文件位于:
enyaitl34#
已应答
"start_url": "/",
添加到json对象。{ "name": "Occasionally Frustrated", "short_name": "Occasionally Frustrated", "start_url": "/", "display": "standalone" }
j7dteeu85#
您应该在
"start_url"
中提供url,如果您使用的是localhost,它应该包含下一个:"start_url": "http://localhost:8080/index.html"
,ezykj2lf6#
从缓存插件中排除/wp-content/plugins/super-progressive-web-apps/public/js/register-sw. js。它对我很有效。