在Tomcat上部署时,Angular Service Worker脱机支持不起作用

时间:2019-08-13 11:24:57

标签: java angular angular-service-worker

我有一个有角度的应用程序,我们正在使用tomcat部署(使用war)。我正在使用angular-sw向应用程序添加脱机支持。 使用上下文路径(例如show-app)访问该应用程序

我现在面临的问题是,当我尝试使用以下网址访问应用程序(使用chrome dev工具的离线模式)时,它的运行状况很好:

http://localhost:8080/showcase-app/

http://localhost:8080/showcase-app/index.html(重定向到http://localhost:8080/showcase-app/

当我按F5键时,我会收到http 504

如果我尝试http://localhost:8080/showcase-app,则会引发504错误

我认为这与路由有关,但不确定到底是什么问题。

这是我生成的ngsw.json文件(删除不必要的CSS和JS网址)

{
  "configVersion": 1,
  "timestamp": 1565693252354,
  "index": "/showcase-app/index.html",
  "assetGroups": [
    {
      "name": "app",
      "installMode": "prefetch",
      "updateMode": "prefetch",
      "urls": [
        "/showcase-app/favicon.ico",
        "/showcase-app/index.html",
        "/showcase-app/main-es2015.f5103b4162e6ae00889a.js",
        "/showcase-app/main-es5.0b19cc7e5eb478145768.js",
        "/showcase-app/polyfills-es2015.e35a976998ea3f8206df.js",
        "/showcase-app/polyfills-es5.6e97d82e42cdf0e046a3.js",
        "/showcase-app/runtime-es2015.3d53808bc2188f4243c7.js",
        "/showcase-app/runtime-es5.f1b869bd6638a324a133.js",
        "/showcase-app/scripts.385aa2cec8cdc651bfad.js",
        "/showcase-app/styles.5b950d38f1d7a3ba6506.css",
      ],
      "patterns": []
    },
    {
      "name": "assets",
      "installMode": "lazy",
      "updateMode": "prefetch",
      "urls": [
        "/showcase-app/CardObject.f4ac54620cd0f92eb623.png"
      ],
      "patterns": []
    }
  ],
  "dataGroups": [],
  "hashTable": {
    "/showcase-app/CardObject.f4ac54620cd0f92eb623.png": "425c1e1cfed36bea7d7d3637fa95c147bd5480d3"
  },
  "navigationUrls": [
    {
      "positive": true,
      "regex": "^\\/.*$"
    },
    {
      "positive": false,
      "regex": "^\\/(?:.+\\/)?[^/]*\\.[^/]*$"
    },
    {
      "positive": false,
      "regex": "^\\/(?:.+\\/)?[^/]*__[^/]*$"
    },
    {
      "positive": false,
      "regex": "^\\/(?:.+\\/)?[^/]*__[^/]*\\/.*$"
    }
  ]
}

我正在使用Angular 8

1 个答案:

答案 0 :(得分:0)

根据此文档,您将需要https与服务工作者一起使用...无论如何,如果您在本地tomcat中尝试它,它将可以使用...

https://developers.google.com/web/fundamentals/primers/service-workers/#you_need_https

发现于:https://stackoverflow.com/a/56376214/5360905