代码之家  ›  专栏  ›  技术社区  ›  Brondahl

如何让Azure上的CRA正确运行w.r.t.serviceWorker缓存?

  •  0
  • Brondahl  · 技术社区  · 6 年前


    TL;博士


    在(当前的)默认CreateReactApp配置中,有一个关于serviceworks的缓存gotcha的讨论得比较好。

    https://github.com/facebook/create-react-app/blob/master/packages/react-scripts/template/README.md#user-content-opting-out-of-caching (尤其是“离线优先考虑”中的第5点和第6点)。

    关于它最初包含在CRA中的扩展论点可以在这里找到: https://github.com/facebook/create-react-app/issues/2398


    • CRA在其主文件中设置了标准的缓存破坏过程。
    • CRA包含了一个“服务工作者”模式来执行重载、超粘性的缓存。
    • 原则上,软件会加载页面,然后去询问服务器最新的代码。
      • 如果它检测到新版本,它将下载该版本,并缓存新版本。
      • 会的 立即显示新版本,但将使用新版本 从新更新的缓存加载页的时间。

    所有这些都是服务人员的标准、期望和预期行为。 但除此之外:

    • 服务人员是 不是
    • 根据主机服务器配置,serviceWorker 它本身
      • 如果那样的话 永久地 服务人员 然后
    • 默认的、现成的Azure配置

    问题0:我是把上面的东西都搞定了,还是遗漏了什么?


    总的来说,我喜欢服务人员的声音——看起来这是一个很有用的工作,但是看起来CRA不太可能提供一些东西,当安装到Azure中时,这些东西根本就坏了——我目前部署的站点(或者给人的印象是)不可能推送更新到!

    我相信我知道如何关闭ServiceWorker,显然包括从浏览器中清除它所需的活动步骤,这些浏览器已经看过一次,因此已经有一个活动的软件。(尽管我不清楚该代码将如何工作!)但如果我能避免的话,我宁愿不那样做-我宁愿知道如何工作 禁用 这个功能。

    所以。。。

    0 回复  |  直到 6 年前