首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Netlify CMS建立阶段工作流

使用Netlify CMS建立阶段工作流
EN

Stack Overflow用户
提问于 2018-09-07 14:20:37
回答 1查看 1.9K关注 0票数 4

我有一个盖茨比网站上的Gitlab部署到Netlify和使用Netlify-CMS。Netlify可以将站点推送到不同的分支,并将每个分支部署到一个单独的url中。例如,我的当前站点有一个production分支部署到example.netlify.com,一个临时分支部署到staging--example.netlify.com

但是,使用Netlify CMS更新内容时创建的提交是另一回事。看来(至少是开箱即用),Netlify CMS将始终将更改推送到其配置中定义的生产分支,无论哪个分支已签出或站点位于何处:

来自文档

注意:无论您在哪里访问Netlify CMS --无论是在本地运行、在暂存环境中运行还是在已发布的站点中运行--它都将始终在托管存储库(例如,在GitHub上)中获取和提交文件,以及在Netlify CMS config.yml文件中配置的分支上。这意味着管理UI中获取的内容将与存储库中的内容相匹配,这可能与本地运行的站点不同。这也意味着使用admin UI保存的内容将直接保存到托管存储库中,即使您是在本地运行UI或在暂存中运行。

来自Netlify CMS使用的项目配置(config.yml):

代码语言:javascript
复制
backend:
  name: git-gateway
  branch: production

因此,目前我可以对站点的结构进行更改,并且只在暂存时才能使用,但是没有机制可以对内容进行更改,并且只在本地或只在暂存时才能使用。

我可以看到的一个选项是为每个部署部署一个不同的config.yml文件(并在本地使用一个单独的文件),因此当在本地使用CMS时,我会将分支设置为dev,在分阶段和生产时分别将分支设置为stagingproduction。假设Netlify-CMS编辑的内容的位置是孤立的,这将使从stagingproduction的内容更改变得容易。

这是最好的办法吗?

EN

回答 1

Stack Overflow用户

发布于 2018-09-10 09:46:35

现在看来,如果您不使用支持编辑工作流的Github,那么您就只能靠自己了。

将Netlify设置为部署同一项目的多个分支是非常容易的,因此您可以轻松地拥有三个独立的环境。在下面的讨论中,我将使用Gatsby,但我认为这个问题适用于您正在使用的任何静态站点生成器。

  • 在本地主机上运行dev
  • 暂存作为附加分支部署添加到Netlify的暂存分支。
  • 生产作为生产分支添加到Netlify中。

如果我们不使用Netlify CMS,这将是我们所需要的。我们可以在本地开发,当我们想要使更改可用时,我们可以推动阶段,然后通过合并到生产阶段并在这些更改准备好时推进到生产阶段。

但是,所有这些环境都将使用相同的config.yml,这意味着这三个环境都将从同一个分支加载并对其进行更改--无论您定义哪个分支为branch的值。

需要的是一种隔离每个环境的内容更改的方法,以便对dev分支进行开发中的更改,对staging分支进行阶段性更改,并对production分支进行生产上的更改。

这可以通过将特定于环境的config.yml部署到每个远程环境,并默认为开发中的dev分支来实现。可能最简单的方法是使用预构建步骤填充branch字段( config.yml ),其中包含当前分支的名称。

这是一个相当不令人满意的解决方案,在我看来,是如此普遍的使用,它应该由Netlify CMS开箱即用。我开了一期这里

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52224491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档