4

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.ymlNetlify CMS で使用されるプロジェクト構成 ( ) から:

backend:
  name: git-gateway
  branch: production

したがって、現時点では、サイトの構造に変更を加えてステージングでのみ利用できるようにすることはできますが、コンテンツを変更してローカルまたはステージングでのみ利用できるようにするメカニズムはありません。

私が見ることができる1つのオプションは、展開config.ymlごとに異なるファイルを展開することです(そしてローカルで別のファイルを使用します)。したがって、CMSをローカルで使用する場合はブランチをに設定し、devステージングと本番ではブランチをstagingおよびに設定しますproductionそれぞれ。Netlify-CMS によって編集されたコンテンツの場所が分離されていると仮定すると、これにより、コンテンツの変更を から に簡単に昇格できるはずstagingですproduction

これは最善のアプローチですか?

4

1 に答える 1