Angular 6 @angular/pwa - sw未能成功提供清单的start_url。

4
我使用Angular 6和@angular/pwa软件包构建了一个PWA应用程序。 我一直在尝试解决这个问题,但无论我做什么,都会出现start_url错误。我已经尝试过以下方法: - 使用绝对链接 - 确保start_url在SW的范围内(SW位于主文件夹中) - 使用“/index.html”作为文件名,因为我在其他支持线程中看到过。 - 每次清除所有浏览器历史记录和缓存。 - 查找@angular/pwa软件包的Github问题 - 在Google上搜索此PWA问题。
这是我的清单:
{
  "name": "BC Doc View",
  "short_name": "BCview",
  "theme_color": "#1976d2",
  "background_color": "#fafafa",
  "display": "standalone",
  "scope": "/",
  "start_url": "/",

在这段代码之后,只有一堆与本文无关的图标。

我的服务工作者配置:

{
  "index": "/index.html",
  "assetGroups": [
    {
      "name": "BC Doc View",
      "installMode": "prefetch",
      "resources": {
        "files": [
          "/favicon.ico",
          "/index.html",
          "/*.css",
          "/*.js"
        ]
      }
    }, {
      "name": "assets",
      "installMode": "lazy",
      "updateMode": "prefetch",
      "resources": {
        "files": [
          "/assets/**"

使用ng build --prod命令生成的实际服务工作者代码共有2200行,因此我认为在这里发布它并不相关。

对于这个问题,我毫无头绪。

1个回答

0

我因这个错误哭了3个小时,但在我发布到这里后不久就找到了解决方案。

我一直在测试这个开发子域名,并像subdomain.domain.com/folder这样访问它。

一旦我把所有东西放在主文件夹中,我就得到了100 PWA分数。

https://i.imgur.com/ex3Os87.png

虽然我还没有优化性能。


嗨@SebastianG,你能发一下你的可工作代码并且指出与你问题中的代码有何不同吗?我不太清楚你具体改了什么。 - foobar443
1
@seza443 的代码没有改变。改变的是我将其部署在顶级域名上,而不是在域名的文件夹中。dev.domain.com/myApp --- 在该子域名的 myapp 文件夹中部署并不起作用,但是将完全相同的文件复制到 dev.domain.com 上却非常顺利。 - SebastianG
你不需要将你的文件复制到主文件夹(或根据你的部署在任何“X”文件夹中),因为你可以相应地在“清单”中设置“scope”关键参数。请参阅https://developers.google.com/web/fundamentals/web-app-manifest/#scope - Sahil Babbar
很遗憾,我几个月前就停止了那个项目的工作,所以无法回去测试它。 - SebastianG

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接