【问题标题】:How to redirect a PWA to a new server如何将 PWA 重定向到新服务器
【发布时间】:2019-08-02 15:52:01
【问题描述】:

我有一个注册服务工作者的应用程序以使该应用程序可以离线使用。现在我需要将应用程序移动到新服务器,因此我为根页面设置了 301 重定向。但是现有的缓存似乎忽略了这一点,总是在旧 URL 上提供旧应用程序。如何强制他们更新?

【问题讨论】:

    标签: javascript service-worker progressive-web-apps


    【解决方案1】:

    另一种简单的方法是使用工作框窗口。您可以检测到新的 Service Worker 安装并提示用户重新加载页面或在未经用户许可的情况下重新加载。更多详情请阅读this

    希望对你有帮助。

    【讨论】:

    • 这似乎有点不同 - 对我来说,核心问题是我从原始服务器中删除了所有文件,包括服务工作者本身,因此无法获取它并继续离线工作模式。
    【解决方案2】:

    找到这个:https://github.com/NekR/self-destroying-sw

    刷新并重新打开页面后,它终于拿起了重定向。

    【讨论】:

      【解决方案3】:

      您可以使用以下方式更新服务工作者代码:

      ServiceWorkerRegistration.update();
      

      这里有一个例子:example

      注意:更新代码在浏览器中安装的 serviceworker 存在差异时运行,在这种情况下,新的 service worker 运行更新,但新代码在网站关闭并再次打开之前不可用。

      【讨论】:

      • 我会把它放在哪里?除了带有重定向的 .htaccess 之外,我的原始服务器上几乎什么都没有。最好的方法似乎是添加一个注销自身的 service worker 文件,因为这是在后续访问时加载的第一件事。
      • 是的,您需要在您的服务器中放置一个索引页面,并在此页面中为您的服务人员加载更新,然后通过 js 进行重定向。
      【解决方案4】:

      谢天谢地,一旦您关闭浏览器,此操作就会自动完成。

      否则,您将不得不为您的 PWA 应用添加更新。更新必须包含一个新的软件(按照通常的 PWA 更新)。在任何脚本中,只需使用 location.href 执行 JS 重定向。

      您似乎无法通过 HTTP 重定向来做到这一点。

      【讨论】:

        猜你喜欢
        • 2013-11-24
        • 1970-01-01
        • 2015-01-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多