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
したがって、現時点では、サイトの構造に変更を加えてステージングでのみ利用できるようにすることはできますが、コンテンツを変更してローカルまたはステージングでのみ利用できるようにするメカニズムはありません。
私が見ることができる1つのオプションは、展開config.yml
ごとに異なるファイルを展開することです(そしてローカルで別のファイルを使用します)。したがって、CMSをローカルで使用する場合はブランチをに設定し、dev
ステージングと本番ではブランチをstaging
およびに設定しますproduction
それぞれ。Netlify-CMS によって編集されたコンテンツの場所が分離されていると仮定すると、これにより、コンテンツの変更を から に簡単に昇格できるはずstaging
ですproduction
。
これは最善のアプローチですか?