У меня есть сайт Gatsby на 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. Это означает, что контент, полученный в пользовательском интерфейсе администратора, будет соответствовать контенту в репозитории, который может отличаться от вашего локального сайта. Это также означает, что контент, сохраненный с использованием пользовательского интерфейса администратора, будет сохраняться непосредственно в размещенном репозитории, даже если пользовательский интерфейс используется локально или в промежуточном режиме.
Из конфигурации проекта (config.yml
), используемого Netlify CMS:
backend:
name: git-gateway
branch: production
Итак, на данный момент я могу вносить изменения в структуру сайта и делать их доступными только на стадии подготовки, однако нет механизма, позволяющего вносить изменения содержимого и делать их доступными только локально или только на стадии подготовки.
Один из вариантов, который я вижу, - это развернуть другой config.yml
файл для каждого развертывания (и использовать отдельный файл локально), поэтому при локальном использовании CMS я бы установил ветку на dev
, а при постановке и производстве я бы установил ветку на staging
и production
соответственно. Если предположить, что контент, редактируемый Netlify-CMS, изолирован, это должно упростить продвижение изменений контента с staging
на production
.
Это лучший подход?