2

我正在尝试在 Angular 2 中为 PWA 设置服务工作者。我目前在 src/assets/js 中有 service-worker.js 文件,我可以在 index.html 中包含以下内容:

<script>
if ('serviceWorker' in navigator) {
  navigator.serviceWorker.register('/assets/js/service-worker.js').then(function(registration) {
    console.log('ServiceWorker registration successful with scope: ', registration.scope);
  }).catch(function(err) {
    console.log('ServiceWorker registration failed: ', err);
  });
}
</script>

这个问题是我得到了错误

Uncaught (in promise) Error: Request for http://localhost:4200/assets/js/src/index.html?_sw-precache=5bad745861375765f6cd0b9440666847 returned a response with status 404

这是意料之中的,因为 index.html 不在 /assets/js/src 中。如果我尝试将 service-worker.js 文件移动到 src/ 我会在 js 文件本身上收到 404 错误,因为我猜测 Angular 2 开发服务器没有接收到它?有谁知道解决这个问题的方法?

编辑:我正在使用 angular-cli

4

1 回答 1

0

service-worker.js文件移动到src/并更改角度 cli 配置

.angular-cli.json

"apps": [
    {
      "root": "src",
      "outDir": "dist",
      "assets": [
        "assets",
        "favicon.ico",
        "service-worker.js" <==== add this
      ],
于 2017-12-01T18:17:40.550 回答