问题标签 [angular-service-worker]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
882 浏览

angular - Angular Service Worker 路由

我已经使用 Angular Service Worker 构建了一个应用程序,除了路线外,它都可以离线运行。如果我转到基本 url,应用程序加载正常,但如果我在离线时转到任何其他路线,我会收到离线错误。

我的 ngsw-manifest.json 看起来像

0 投票
0 回答
162 浏览

angular - 用于平台服务器的 Angular CLI 服务人员?

语境

我正在使用 Angular CLI 构建服务器端呈现的应用程序。在我的.angular-cli.json文件中,apps数组中有 2 个应用程序,一个用于"platform": "browser",一个用于"platform:": "server",在1.3.x. 目前,我在浏览器配置中使用服务工作者选项:

.angular-cli.json

问题:

我也应该使用该"serviceWorker": true选项"platform": "server"吗?

谢谢!

0 投票
0 回答
125 浏览

angular - Angular 5 cli 多应用服务工作者

我有一个带有 angular cli 的多应用程序设置,基本上是一个客户端应用程序和一个管理应用程序,并使用 express 为它们提供服务。我希望能够从管理路径为管理应用程序提供服务,即example.com/admin在我添加服务人员之前工作正常。

如果我访问服务工作者,example.com那么应用程序example.com/admin将不再加载它总是尝试从服务工作者加载客户端应用程序,除非我清除缓存然后加载。

几乎没有关于角度服务工作者实现的文档,所以不知道是否有任何选项可以克服这个问题。

0 投票
1 回答
1139 浏览

angular - 如何在 index.html Angular 2 中包含 src/ 目录中的服务工作者 js 文件

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

这个问题是我得到了错误

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

0 投票
1 回答
967 浏览

angular - 在生产中将 PWA 更新部署到 IIS 后出现“哈希不匹配”错误

我正在使用 angular5 编写的 PWA。我正在使用:“@angular/cli”:“1.6.0-rc.1”。"@angular/language-service": "^5.0.0",

我想通知用户应用程序的更新以刷新页面。

  1. 当我在本地运行代码并在输出文件夹上监听 http-server 时,它工作正常,我看到了更新流程和用户的确认消息。

  2. 当使用 localhost 在 IIS 中本地运行应用程序时,它也可以正常工作,并且我看到了更新流程和用户的确认消息。

  3. 当使用特定域在本地运行应用程序(在 IIS 中绑定到应用程序的主机文件中编辑)时,它不起作用。

  4. 在生产中运行应用程序时,它不起作用。

在第 3 点和第 4 点中,当我说“不起作用”时,我的意思是我收到 Uncaught (in promise) Error: Hash mismatch (cacheBustedFetchFromNetwork) 的异常消息:

当我尝试在移动设备上针对生产检查它时,我也没有看到更新流程正在发生。

再次刷新页面后,我看到更改并且错误消息消失(更新已完成)

这是执行更新的代码:

也许我错过了一些我正在以角度部署它的域的特定配置?

0 投票
0 回答
520 浏览

angular - Angular-cli 1.6 PWA 路由重定向阻止服务器工作者启动

我正在尝试将 @angular/service-worker 5.0.0 与 Angular cli 1.6 一起使用,该应用程序在离线时会缓存一切正常,但是当我通过在启动时重定向到 \home 来更改主 \ 路由时,service-worker 停止工作并从 chrom 开发工具中消失。如何在 ngsw.config.json 中设置路由以及它的文档在哪里。这是我的 App-routing.module:

0 投票
7 回答
19823 浏览

angular - Angular 5 和 Service Worker:如何从 ngsw-config.json 中排除特定路径

我有ngsw-config.json(取自文档):

在我的网站上有一个指向 RSS 提要的链接/api/rss,它应该在新的浏览器选项卡中打开,而无需加载 Angular 应用程序。如何将其从请求重定向到的资源列表中排除index.html

UPD:我尝试过但无法使用以下配置(请参阅!/api/rss):

0 投票
1 回答
3958 浏览

angular-service-worker - ngsw/state 虚拟目录下的 Angular Service Worker 调试信息?

我指的是角度服务工作者和调试(请参阅以下链接:https ://angular.io/guide/service-worker-devops#locating-and-analyzing-debugging-information )。

引用文档:

ngsw/Angular 服务工作者在虚拟目录下公开调试信息 。目前,唯一暴露的 URL 是 ngsw/state.

我无法在 https://angular.io/progressive web 应用程序上找到调试信息:我尝试如下附加ngsw/state:https: //angular.io/ngsw/state无济于事。我在源开发工具选项卡中都找不到参考。更重要的是:什么是虚拟目录,在哪里可以找到它?ngsw/statengsw/state

有人可以建议吗?

0 投票
1 回答
378 浏览

angular - Angular Service Worker 开始太晚了

我在内部 Service Worker 中使用 Angular 5.1 这是我的 ngsw-config.json 文件:

在我主页的 ngOnInit 函数中,我调用了 dataGroups 中列出的 /api url。当我打开控制台时,我可以看到这个 url 在 service worker 启动之前被调用(下面用红色框起来)(我猜 service worker 的启动与下面蓝色框起来的元素匹配)。

开发控制台屏幕

因此,如果我关闭我的 Internet 连接,则 /api 调用不会由服务人员处理。如果我在关闭连接之前导航到另一个页面并返回主页,则 /api 调用由服务人员处理。

这是一个问题吗?案件如何处理?

0 投票
1 回答
629 浏览

angular - 将 Angular 5 PWA 缓存时间设置为无限制

我的 pwa(Progressive Web App)的缓存在 3 天后被删除。有没有办法告诉浏览器永远不应该删除缓存?

我的 ngsw-config.json 看起来像这样:

我可以以某种方式将 maxAge 设置为无限制吗?