Quarto publish сбрасывает CNAME

Вопрос или проблема

Я хочу использовать страницы Github с собственным доменом и настроил всё соответствующим образом. Я публикую свой сайт с помощью команды quarto publish gh-pages. Проблема в том, что Quarto автоматически удаляет файл CNAME в ветке, когда я использую команду публикации. Решение в этой проблеме и этом PR заключается в том, чтобы указать его в _quarto.yml

project:
  resources: 
    - CNAME

не сработало для меня.

Ответ или решение

Проблема удаления файла CNAME при использовании команды quarto publish gh-pages распространена среди пользователей Quarto, которые пытаются интегрировать свои проекты с GitHub Pages на собственном домене. При каждом использовании этой команды происходит автоматическое удаление файла CNAME, что может негативно сказаться на доступности вашего сайта.

Понимание проблемы

Файл CNAME необходим для настройки вашего пользовательского домена на GitHub Pages. Он указывает на то, что ваш сайт будет доступен по определенному домену, и его отсутствие приводит к тому, что GitHub Pages не сможет правильно обработать запросы на этот адрес.

Проблема, с которой вы столкнулись, заключается в том, что при выполнении команды quarto publish gh-pages, Quarto по умолчанию очищает все ресурсы в ветке gh-pages, включая файл CNAME. Это происходит потому, что Quarto не учитывает его важность для функционирования вашего сайта, что ведет к нарушению работы сервисов.

Решение проблемы

Предложенное вами решение с добавлением конфигурации в файл _quarto.yml вполне логично. Вот как это должно выглядеть:

project:
  resources: 
    - CNAME

Однако вы упомянули, что этот подход не сработал для вас. В этом случае, вы можете рассмотреть дополнительные шаги для решения проблемы.

1. Проверка структуры проекта

Убедитесь, что файл CNAME действительно находится в корне вашего проекта и доступен для программы Quarto. В некоторых случаях, если файл размещен в неверной директории, он может быть проигнорирован.

2. Создание пользовательского скрипта

В случае, если стандартное поведение Quarto не подходит, вы можете создать собственный bash-скрипт, который сначала будет выполнять команду публикации, а затем копировать ваш CNAME файл обратно в ветку gh-pages. Вот пример простого скрипта:

# publish.sh
# Публикация сайта
quarto publish gh-pages

# Копирование файла CNAME обратно в ветку gh-pages
cp CNAME _gh-pages/
git add _gh-pages/CNAME
git commit -m "Добавлен файл CNAME"
git push origin gh-pages

3. Использование GitHub Actions

Если вы хотите автоматизировать этот процесс, вы можете использовать GitHub Actions для управления деплоем. Вы можете настроить workflow, который будет гарантировать, что файл CNAME всегда присутствует в ветке gh-pages.

Заключение

Проблема с удалением файла CNAME при использовании команды quarto publish является распространенной среди пользователей Quarto, стремящихся использовать GitHub Pages с пользовательскими доменами. Обязательно проверьте корректность конфигурации в _quarto.yml и рассмотрите возможность применения пользовательских сценариев или автоматизированных действий через GitHub Actions для исполнения своей привычной публикации с сохранением вашего CNAME файла.

Если проблема все еще не решается, рекомендуется отслеживать официальные обновления и обсуждения на GitHub, так как это может быть исправлено в будущих версиях Quarto.

Оцените материал
Добавить комментарий

Капча загружается...