Visual Studio 渐进式Web应用程序-服务工作线程不提供start_URL

v64noz0r  于 2022-11-17  发布在  其他
关注(0)|答案(6)|浏览(140)

正在玩渐进式的网络应用程序。我一直试图使网络应用程序安装横幅工作,但我一直收到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);
    })
  );
});

我的浏览器缓存:

1szpjjfi

1szpjjfi1#

从注册A服务工作人员注意到,
如果我们在/example/sw.js注册服务工作者文件,则服务工作者将仅看到URL以/example/(即/example/page1//example/page2/)开头的页面的fetch事件。
内联显示的错误并在此documentation中给出,检查以下内容:
1.在manifest.json文件中定义start_url属性。
1.确保服务工作进程正确缓存与start_url的值匹配的资源。
另外,检查这个tutorial,看看它是否会帮助你。

ykejflvf

ykejflvf2#

只是一个注意...你注意到上面的页面是通过“https”提供的。但是,如果你其他的一切都正确,并且没有使用https,你会得到同样的错误消息。

r55awzrz

r55awzrz3#

有家伙,一直挣扎着同样的问题,只是为了发现我的html链接标记丢失,请确保您是在您的网站标题上指出您的清单文件位于:

<link rel="manifest" href="/manifest.json">
enyaitl3

enyaitl34#

已应答

  • 转到您的公共文件夹,
  • 转到您的manifest.json文件,
  • 现在将"start_url": "/",添加到json对象。
  • 请参见以下示例。

{ "name": "Occasionally Frustrated", "short_name": "Occasionally Frustrated", "start_url": "/", "display": "standalone" }

j7dteeu8

j7dteeu85#

您应该在"start_url"中提供url,如果您使用的是localhost,它应该包含下一个:"start_url": "http://localhost:8080/index.html"

ezykj2lf

ezykj2lf6#

从缓存插件中排除/wp-content/plugins/super-progressive-web-apps/public/js/register-sw. js。它对我很有效。

相关问题