我在 Gitlab 上有一个 Gatsby 站点,部署到 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 中获取的内容将与存储库中的内容相匹配,这可能与您本地运行的站点不同。这也意味着使用管理 UI 保存的内容将直接保存到托管存储库,即使您在本地或暂存中运行 UI。
config.yml
从Netlify CMS 使用的项目配置( ):
backend:
name: git-gateway
branch: production
因此,目前我可以对站点的结构进行更改并使其仅在登台时可用,但是没有机制可以进行内容更改并使其仅在本地或仅在登台时可用。
我可以看到的一个选项是为config.yml
每个部署部署一个不同的文件(并在本地使用一个单独的文件),因此当在本地使用 CMS 时,我将分支设置为dev
,而在登台和生产中,我将分支设置为staging
和production
分别。假设 Netlify-CMS 编辑的内容的位置是隔离的,这应该很容易将内容更改staging
从production
.
这是最好的方法吗?