【问题标题】:ReactJS app deployed to firebase hosting not updating after first deployment部署到 Firebase 托管的 ReactJS 应用程序在首次部署后未更新
【发布时间】:2020-05-28 16:37:12
【问题描述】:

希望你们一切都好,保持安全。

我一直在尝试使用 firebase 将我的 react 应用程序部署到网络上,并且在我尝试更新/重新部署它之前一切顺利。它在我的终端中显示✔ Deploy complete!,但我检查了网站,它显示没有更新。我尝试将以下代码放入firebase.json:

"headers": [
      {
        "source": "/service-worker.js",
        "headers": [
          {
            "key": "Cache-Control",
            "value": "no-cache"
          }
        ]
      }
    ]

但这并没有改变任何东西。我发布应用程序的步骤如下:

npx create-react-app firebase-test
cd firebase-test
firebase login
firebase init #I only chose hosting, chose to configure as a single-page application, wrote build as my public folder
npm run build
firebase deploy

它显示了第一次部署,但是当我尝试再次部署时,我没有看到任何更新。

【问题讨论】:

  • 愚蠢的问题...您每次部署之前都在构建它吗?
  • 嗨!如果您可以从部署日志中添加更多信息,那就太好了。
  • 请不要添加“已解决”。当您接受答案时,每个人都知道它已解决。 SO 是一个问答网站

标签: javascript reactjs firebase command-line-interface firebase-hosting


【解决方案1】:

您的service-worker.js 可能仍在缓存中,因为您在首次访问该站点后添加了Cache-Control 标头。

这意味着您的浏览器没有尝试再次请求该文件,而是从内存中提供该文件。即使是标准刷新 (CTRL/CMD + R) 也无济于事。

尝试硬刷新 (CTRL+Shift + R),或在开发人员工具中手动清除应用程序的缓存。您的浏览器会重新下载带有正确Cache-Control 标头的service-worker.js,并且问题不会再次出现。

和往常一样,请确保在部署之前实际构建应用程序 :)

【讨论】:

  • 服务工作者文件should not be cached。我相信这在所有实现它们的浏览器中都是一致的。
【解决方案2】:

如果部署完成并且你看到了一个注释,但是网站没有更新,那么这意味着你的应用包没有改变,确保你在运行部署命令之前运行 npm run build

【讨论】:

    猜你喜欢
    • 2020-08-07
    • 2021-05-09
    • 2021-01-06
    • 1970-01-01
    • 2021-01-15
    • 2019-07-11
    • 2019-10-10
    • 2019-07-11
    • 2020-12-25
    相关资源
    最近更新 更多