缺少在 GCloud 上更新静态 ReactJS 站点的步骤

IT技术 reactjs google-cloud-platform rsync
2021-05-06 21:46:12

有人会认为简单地替换与应用程序关联的存储桶中的内容会更新应用程序,但事实并非如此。


我有一个我昨天部署的网站。我创建了bucket,然后在命令行中创建了目录,然后部署了React应用程序

gsutil rsync -r gs://bucket-name ./app-name

然后我进入项目目录并做了

gcloud app deploy

昨天一切正常。但是今天我做了一些改变,进入同一个目录,你根本不能再做gcloud app deploy一次。我将新的构建文件夹复制到存储桶中。但是好像少了一步?我运行了与昨天相同的命令,认为rsync可能会将存储桶同步到应用程序,然后我又回到应用程序并进行了另一次部署。然而一切都没有改变。我错过了哪一步?


此问题与:如何快速更新 Google Cloud Storage 上的静态站点无关

1个回答

下面是一个实际有效的简单解决方案。谷歌的文档过于复杂而且几乎没有用。而他们的“技术支持”也无法解决问题。


这就是我能够使用命令行实用程序在 gcloud 上更新我的静态站点的方式。

  • 创建一个新的存储桶,最好使用类似appname-v2的版本命名
  • 将您最近的构建复制到该存储桶中
  • 删除旧桶
  • 从控制台中的主要区域,您可以看到应用程序的目录 gsutil rsync -r gs://[bucketname] ./appname
  • cd 进入目录
  • gcloud app deploy

因此,如果您的应用程序的最新版本是 3,如果您的应用程序目录是 stackoverflow,并且您的存储桶是“bucket”,那么您的gsutil命令看起来像

gsutil rsync -r gs://bucket-v3 ./stackoverflow

Gcloud 控制台 - 显示存储桶版本的命名

在此处输入图片说明

部署的站点 - 测试

在此处输入图片说明


有很多相关的问题,他们一遍又一遍地关于“缓存”等问题。读起来毫无意义。只需删除旧存储桶并重新部署即可。

当然,这是针对小型应用程序的,有很多方法可以“正确执行”,但祝您在文档中找到它好运。我认识的每个使用 gcloud 的人都有几种解决方法。