Конфигурирование Jekyll для gizub страниц PROJECT

Я нахожусь здесь на своем пути. Я пытался посмотреть на все другие страницы проекта github, которые я мог найти, и даже блоги, но у меня нет проблем, которые я получаю. Во-первых, я пытаюсь создать страницу проекта для своего репо. Я сделал это, следуя обычным учебникам, создав ветвь gh-страниц в моем репозитории проектов и нажав.

Мне удалось сделать это и создать шаблон моих файлов. Мне даже удалось использовать HAML и SASS (они все еще конвертируются в html/css и что я нажимаю на репо, поэтому проблем нет). Я просто думаю, что я неправильно настраиваю свой jekyll. Во-первых, я не вижу никаких конфигураций на других страницах людей, которые используют baseurl или url для config.yml.

Проблема с моей - это когда я просматриваю свои сообщения:

{% for post in site.posts %}
  <a href="{{ post.url }}">{{ post.title }}</a>
{% endfor %}

Он всегда генерирует href как href="/post-title"

my _config.yml btw имеет только следующее:

permalink: /exercises/:title

Проблема с этим, когда я нажимаю ссылку, всегда указывает на http://corroded.github.com/exercises/title-here, когда она должна быть http://corroded.github.com/projectname/exercises/title-here

Я действительно пытался жестко кодировать путь, делая:

<a href="#" onclick="location.href='http://corroded.github.com{{ post.url }}'; return false;"> и это работает. Он переходит к сообщению, но он показывает его как обычный текст, а не как сгенерированный html. Я знаю, что мне не хватает чего-то очень простого здесь, но я не могу найти его, и я боролся с этим целыми выходными.

О, и я забыл добавить: делая это в своем локальном хосте, я могу получить доступ ко всему:

http://localhost:4000/, и нажатие на ссылки приведет меня к http://localhost:4000/exercises/title-here и IT WORKS. Поэтому у меня есть довольно хорошее предположение, что это имеет какое-то отношение к конфигурации.

Ответ 1

Когда у вас есть косая черта в начале вашей постоянной ссылки, это означает, что все URL-адреса должны быть относительно корня сайта. Именно по этой причине он будет http://corroded.github.com/exercises/title-here вместо http://corroded.github.com/projectname/exercises/title-here. Попробуйте это без первой косой черты:

permalink: exercises/:title

То же самое относится к любым URL-адресам, которые вы создаете с помощью HTML. Если у вас есть:

<a href="/about">

он всегда будет идти в корень домена (например, http://corroded.github.com/about). Если проект называется "имя проекта", вы можете использовать HTML как

<a href="/projectname/about">

для прямой ссылки на страницы (например, http://corroded.github.com/projectname/about).

Конечно, вы также можете использовать относительные URL-адреса (т.е. URL-адреса без косой черты). Вам просто нужно знать, где вы находитесь в дереве каталогов.

Ответ 2

EDIT: этот ответ был добавлен в документацию Jekyll на http://jekyllrb.com/docs/github-pages/.


Наконец-то я понял, что вы хотите найти решение со стандартным URL-адресом для страниц GitHub (username.github.io/project-name/). Вот что делать:

В _config.yml установите для параметра baseurl значение /project-name - отметьте начальную косую черту и отсутствие конечной косой черты.

Теперь вам нужно будет изменить способ создания ссылок в ваших шаблонах и сообщениях двумя способами:

При обращении к файлам JS или CSS сделайте это так: {{ site.baseurl }}/path/to/css.css - обратите внимание на косую черту сразу после переменной (непосредственно перед "path" ).

При выполнении постоянных ссылок или внутренних ссылок сделайте так: {{ site.baseurl }}{{ post.url }} - обратите внимание, что между этими двумя переменными есть косая черта нет.

Наконец, если вы хотите предварительно просмотреть свой сайт перед началом/развертыванием с помощью jekyll serve, обязательно передайте пустую строку в параметр --baseurl, чтобы вы могли просматривать все при localhost:4000 обычно (без /project-name попадания туда, чтобы все испортить): jekyll serve --baseurl ''

Таким образом, вы можете предварительно просмотреть свой сайт локально с сайта root на локальном хосте, но когда GitHub генерирует ваши страницы из ветки gh-страниц, все URL-адреса начинаются с /project-name и будут корректно разрешены.

Подробнее об этой проблеме на вопрос № 332.