【问题标题】:Opening a Single Page App PWA using a non-base URL when offline离线时使用非基本 URL 打开单页应用 PWA
【发布时间】:2019-01-18 02:50:57
【问题描述】:

让我们举一个使用单页应用 (SPA) 框架(如 Angular - https://www.ngcolombia.com)构建的 PWA(渐进式 Web 应用)示例。

  1. 打开网站。
  2. 导航到其他页面,例如:https://www.ngcolombia.com/speakers
  3. 离线并点击重新加载 - 网站将无法加载。

如果我们尝试从基本 URL 重新加载,它可以工作,但在单页应用程序中,通常会从具有完整 URL 的不同页面重新加载。

如何解决这个问题,似乎特定于 SPA PWA?

【问题讨论】:

  • 您是否尝试过路由器中的useHash 策略? angular.io/guide/…
  • @trichetriche,我们正在使用默认的 PathLocationStrategy
  • 现在尽量不要
  • 猜测哈希策略会起作用,但现在继续下面 Jeff 的建议。

标签: angular single-page-application progressive-web-apps angular-service-worker angular-pwa


【解决方案1】:

当使用Application Shell architecture(通常是单页应用程序中的情况)时,您通常希望服务工作人员使用缓存的应用程序响应所有导航请求,无论 URL 是什么外壳 HTML。

您可以使用 navigationUrls 选项配置 Angular 的服务工作线程:https://angular.io/guide/service-worker-config#navigationurls

这种方法不需要在您的 URL 中使用哈希 — 您可以继续使用真实的 URL 和 History API。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-23
相关资源
最近更新 更多