将firebase-messaging-sw文件放在角度应用

时间:2017-02-24 09:28:12

标签: angularjs firebase firebase-cloud-messaging service-worker

我在注册服务工作者时感到震惊。我创建了一个示例项目,我已经在根级别添加了firebase-messaging-sw.js文件,如此

<script src="/firebase-messaging-sw.js"></script>

在根级别和manifest.json文件后我在启动应用程序后grunt serve,我能够注册服务工作者并生成令牌,并且工作正常。

之后我尝试在实际工作项目中实现该功能,我已经在root级别添加了 未捕获的错误:[$ http://injector:modulerr]由于以下原因导致无法实例化模块应用程序: 错误:[$ http://injector:modulerr]无法实例化模块lazyModel,原因如下: 错误:[$ http://injector:nomod]模块&#39; lazyModel&#39;不可用!您要么错误拼写了模块名称,要么忘记加载它。如果注册模块,请确保将依赖项指定为第二个参数。这个错误。

并且我在根级别添加了manifest.json文件,但未在浏览器中加载。

现在的问题是&#34;咕噜声&#34;项目工作正常,因为&#34; grunt build&#34;生成一个dist补充说,在WEB INF下面的war文件中。为什么它不适用于grunt build?

dist不是没有打包文件。

对于我的实际项目,路径为http://localhost:8080/XXXXXX/index.html#/core/login我正在使用此路径&#34; grunt build&#34;生成的dist。

我的示例项目http://localhost:9000/#/使用了grunt服务。

目录结构enter image description here

2 个答案:

答案 0 :(得分:0)

尝试检查是否正确加载了所有其他依赖项?

由于您的错误显示“模块'lazyModel'不可用”,请尝试找到已使用或需要的位置。

答案 1 :(得分:0)

使用service worker precache。它是一个生成服务工作者的模块,负责缓存应用程序中的所有静态资源。

它会在根文件夹中生成一个service-worker.js文件。您可以看到输出还包括缓存的资产的总大小和数量。这对应于应用程序shell包含的资源总数。

Here是一个可能有帮助的博客。

干杯!