Как развернуть сайт 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
Репо подготовка
Вы должны сделать эту процедуру один раз.
Опубликуйте свой проект на Github.
Перейдите в
build/
каталог. Если у вас его нет в проекте, создайте его вручную или создайте с помощьюbundle exec middleman build
,cd build/
Инициировать пустой репозиторий git:
git init .
Добавьте репозиторий Github в качестве удаленного:
git remote add origin git@github...git
Начать новую ветку
gh-pages
:git checkout --orphan gh-pages
Процедура развертывания
Вам придется повторять следующие шаги каждый раз при развертывании обновления. Попробуйте добавить их в командный файл, чтобы вам не приходилось повторять их вручную.
Создайте свой проект.
Начиная с корня проекта:
bundle exec middleman build
Перейдите в каталог сборки:
cd build/
Добавить все файлы:
git add -A
Передайте их. Здесь вам не нужно значимое сообщение о коммите, потому что ваша история коммитов хранится в основной ветке вашего проекта. Там нет большой необходимости дублировать это здесь.
git commit -m build
Толкнуть их в Github:
git push origin gh-pages
Во время первого нажатия добавьте
-u
:git push -u origin gh-pages
Обратите внимание, что для отображения вашего веб-сайта требуется время. Говорят, десять минут, но это может занять часы. Будьте терпеливы, хотя всегда есть шанс, что вы что-то напутали.:)
Последующие толчки должны быть немедленными. Если толчок не отображается на вашем веб-сайте, попробуйте увеличить его с последующим толчком.