Как развернуть сайт Middleman на странице пользователя GitHub

Я пытаюсь развернуть проект Middleman на своей странице пользователя GitHub ([username].github.io). Я использую гем https://github.com/neo/middleman-gh-pages, и инструкции кажутся достаточно простыми.

Однако после запуска bundle exec rake publishМоя страница пользователя GitHub по-прежнему показывает 404. Я вижу сборку на GH, и она находится в ветке 'gh-pages'.

Вот моя структура каталогов на мастер после публикации.

Вот моя структура каталогов в ветке gh-pages после публикации.

Когда я перехожу к [username].github.io/source/index.html.haml, мой браузер загружает файл haml. Кажется, что моя ветвь gh-pages - это не то, что на самом деле обслуживается. Кто-нибудь еще сталкивался с этой проблемой? Как я могу сделать так, чтобы ветка gh-pages служила, когда я захожу на мою страницу пользователя GitHub?

2 ответа

Решение

username.github.io aka сайт пользователя / организации должен быть помещен в master ветка.

Middleman-GH-страниц Gem, кажется, только подтолкнуть gh-pages ( см. здесь задачу публикации), которая является веткой для страниц проекта (username.github.io/projectName).

Я вижу, этот вопрос уже решен, но я все еще собираюсь поставить свои два цента.

Как вручную развернуть проект Middleman на Github Pages

Примечание. В этом руководстве описывается, как развернуть веб-сайт проекта (например, username.github.io/projectname). Если вы развертываете пользовательский веб-сайт (например, username.github.io), вам нужно будет настроить некоторые параметры. Это не сложно понять!

Конфигурация проекта

config.rb

Github Pages будет обслуживать сайт вашего проекта из подпапки. Это означает, что вы не можете ссылаться на свои страницы и ресурсы с абсолютными URL. Скажите Middleman использовать относительные URL:

activate :relative_assets
set :relative_links, true

Не забудьте использовать помощник link_to для внутренних ссылок, не пишите <a href... вручную.

.gitignore

Убедитесь, что ваш .gitignore В файле перечислены папки сборки. Если это не так, добавьте его:

/build/

.nojekyll

Github Pages используют препроцессор Jekyll, который может мешать работе вашего статического сайта. Чтобы отключить магию Джекила, создайте пробел .nojekyll файл под source/,

Из корня вашего проекта:

touch source/.nojekyll

Репо подготовка

Вы должны сделать эту процедуру один раз.

  1. Опубликуйте свой проект на Github.

  2. Перейдите в build/ каталог. Если у вас его нет в проекте, создайте его вручную или создайте с помощью bundle exec middleman build,

    cd build/
    
  3. Инициировать пустой репозиторий git:

    git init .
    
  4. Добавьте репозиторий Github в качестве удаленного:

    git remote add origin git@github...git
    
  5. Начать новую ветку gh-pages:

    git checkout --orphan gh-pages
    

Процедура развертывания

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

  1. Создайте свой проект.

    Начиная с корня проекта:

    bundle exec middleman build
    
  2. Перейдите в каталог сборки:

    cd build/
    
  3. Добавить все файлы:

    git add -A
    
  4. Передайте их. Здесь вам не нужно значимое сообщение о коммите, потому что ваша история коммитов хранится в основной ветке вашего проекта. Там нет большой необходимости дублировать это здесь.

    git commit -m build
    
  5. Толкнуть их в Github:

    git push origin gh-pages
    

    Во время первого нажатия добавьте -u:

    git push -u origin gh-pages
    

Обратите внимание, что для отображения вашего веб-сайта требуется время. Говорят, десять минут, но это может занять часы. Будьте терпеливы, хотя всегда есть шанс, что вы что-то напутали.:)

Последующие толчки должны быть немедленными. Если толчок не отображается на вашем веб-сайте, попробуйте увеличить его с последующим толчком.

Другие вопросы по тегам