← Cloudflare Pages / pages / migrations
Перенос сайта на Jekyll с GitHub Pages
В этом руководстве вы узнаете, как перенести существующий Сайт GitHub Pages на Jekyll ↗ на Cloudflare Pages. Jekyll является одним из самых популярных генераторов статических сайтов, используемых с GitHub Pages, поэтому перенос вашего сайта с GitHub Pages на Cloudflare Pages займёт всего несколько простых шагов.
Это руководство проведёт вас через следующие этапы:
- Добавление в конфигурацию проекта необходимых зависимостей, которые использует GitHub Pages.
- Создание нового сайта Cloudflare Pages, подключённого к существующему репозиторию GitHub.
- Сборка и развертывание сайта на Cloudflare Pages.
- (Необязательно) Перенос вашего пользовательского домена.
С учётом времени сборки это руководство займёт у вас менее 15 минут.
Перед началом работы
Это руководство предполагает следующее:
- Если у вас уже есть сайт на GitHub Pages, использующий Jekyll ↗
- У вас есть опыт работы с инструментами командной строки Ruby, а также установлены
gemиbundleустановлен. - Вы знакомы с несколькими базовыми операциями Git, включая
add,commit,push, а такжеpull. - Вы ознакомились с Начало работы руководство по Cloudflare Pages.
Если у вас не установлен Rubygems (gem) или Bundler (bundle) установлен на вашем компьютере, обратитесь к руководствам по установке для Rubygems ↗ и Bundler ↗.
Подготовка репозитория GitHub Pages
В существующем репозитории на основе Jekyll должен быть указан Gemfile (файл конфигурации зависимостей Ruby), чтобы Cloudflare Pages мог получить и установить эти зависимости во время этап сборки.
В частности, вам потребуется создать Gemfile и установите github-pages gem, который включает все зависимости, предполагаемые окружением GitHub Pages.
Версия 2 среды сборки Pages будет использовать Ruby 3.2.2 для сборки Jekyll по умолчанию. Убедитесь, что ваша локальная среда разработки совместима с этой версией.
brew install [email protected]
export PATH="/usr/local/opt/[email protected]/bin:$PATH"cd my-github-pages-repo
bundle initОткройте Gemfile который был создан для вас, и добавьте следующую строку в конец файла:
gem "github-pages", group: :jekyll_pluginsВаш Gemfile должен выглядеть примерно так, как показано ниже:
# frozen_string_literal: true
source "https://rubygems.org"
git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
# gem "rails"
gem "github-pages", group: :jekyll_pluginsЗапустите bundle update, который установит github-pages gem за вас и создаст Gemfile.lock файл с зафиксированными версиями зависимостей.
bundle update
# Bundler will show a lot of output as it fetches the dependenciesЭто должно завершиться успешно. Если нет, проверьте, что вы скопировали github-pages строку выше точно так, как указано, и не закомментировали её, добавив в начале #.
Теперь эти файлы нужно закоммитить в репозиторий, чтобы Cloudflare Pages мог ссылаться на них на следующих шагах:
git add Gemfile Gemfile.lock
git commit -m "deps: added Gemfiles"
git push origin mainНастройка проекта Pages
Теперь, когда проект GitHub Pages явно указывает свои зависимости, можно приступить к настройке Cloudflare Pages. Процесс почти идентичен развёртывание сайта на Jekyll.
Чтобы развернуть сайт в Pages:
-
На панели управления Cloudflare перейдите к разделу Workers & Pages страницу.
Перейдите в Workers & Pages ↗ -
Выберите Создать приложение > Pages > Импорт существующего репозитория Git.
-
Выберите созданный вами новый репозиторий GitHub и в разделе Настройка сборок и деплоев раздел и укажите следующую информацию:
| Параметр конфигурации | Значение |
|---|---|
| Продакшен-ветка | main |
| Команда сборки | jekyll build |
| Директория сборки | _site |
После того как вы настроите сайт, вы можете запустить первый деплой. Вы увидите, как Cloudflare Pages устанавливает jekyll, зависимостей вашего проекта и сборку сайта, прежде чем развернуть его.
После деплоя сайта вы получите уникальный поддомен для своего проекта на *.pages.dev. Каждый раз, когда вы фиксируете новый код на сайте Jekyll, Cloudflare Pages автоматически пересоберет ваш проект и развернет его. Вы также получите доступ к развёртывания предпросмотра для новых pull request, чтобы вы могли увидеть, как изменения выглядят на сайте, прежде чем разворачивать их в продакшен.
Перенос пользовательского домена
Если вы используете пользовательский домен с GitHub Pages ↗, необходимо обновить DNS-записи так, чтобы они указывали на новое развёртывание Cloudflare Pages. Для этого потребуется обновить CNAME запись у DNS провайдера вашего домена, чтобы она указывала на <your-pages-site>.pages.dev, заменив <your-username>.github.io.
Учтите, что истечение срока действия DNS-кэшей и отображение изменений может занять некоторое время в зависимости от значения DNS TTL (time to live), заданного при первоначальном создании записи.
См. добавление пользовательского домена раздел руководства «Начало работы» для получения списка подробных шагов.
Что дальше?
- Узнайте, как настроить заголовки HTTP-ответов для вашего сайта Pages с помощью Cloudflare Workers.
- Узнайте, как откатить потенциально неработающий деплой к ранее работавшей версии.
- Настройте перенаправления чтобы посетители всегда перенаправлялись на ваш «канонический» пользовательский домен.