Angular 如何在index.html.2中包含src/directory中的service worker js文件

Angular 如何在index.html.2中包含src/directory中的service worker js文件,angular,service-worker,progressive-web-apps,angular-service-worker,Angular,Service Worker,Progressive Web Apps,Angular Service Worker,我正试图在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) { co

我正试图在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>

if(导航器中的“serviceWorker”){
register('/assets/js/service worker.js')。然后(函数(注册){
console.log('ServiceWorker注册成功,作用域:',registration.scope);
}).catch(函数(err){
console.log('ServiceWorker注册失败:',错误);
});
}
问题是我得到了错误

未捕获(承诺中)错误:请求http://localhost:4200/assets/js/src/index.html?_sw-precache=5bad745861375765f6cd0b9440666847返回状态为404的响应

这是因为index.html不位于/assets/js/src。如果我尝试将service-worker.js文件移动到src/我会在js文件本身上得到一个404错误,因为我猜Angular 2 dev服务器没有接收到它?有人知道怎么解决这个问题吗


编辑:我正在使用angular cli

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

.angular cli.json

"apps": [
    {
      "root": "src",
      "outDir": "dist",
      "assets": [
        "assets",
        "favicon.ico",
        "service-worker.js" <==== add this
      ],
“应用程序”:[
{
“根”:“src”,
“outDir”:“dist”,
“资产”:[
“资产”,
“favicon.ico”,

“service worker.js”你在使用@angular/cli吗?@yurzui是的,我在使用