2012-05-14 3 views
11

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

Мне удалось сделать это и создать шаблон моих файлов. Мне даже удалось использовать 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"

мой _config.yml кстати есть только это:

permalink: /exercises/:title 

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

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

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

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

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

+0

Вы пытались изменить строку my_config.yml: permalink:/exercise /: title to permalink:/projectname/exercise /: title? Я ничего не знаю о страницах GitHub, но это кажется очевидным (слишком очевидным?), Чтобы попробовать. – vlasits

+0

Это слишком очевидно, но это только тогда применяется к сообщениям. Когда я создаю ссылку, чтобы сказать, о странице, она все еще ссылается/о том, что относится к корню http://corroded.github.com. Не говоря уже о том, что мне также пришлось жестко задавать этот путь для моих файлов css и js, когда все остальные примеры показывали только «/css/stylesheet.css» – corroded

ответ

9

Если у вас есть косая черта в передней части вашей постоянной ссылки, это означает, что все 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).

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

+1

P.S. Другая полезная вещь - удалить «постоянную ссылку» из вашей конфигурации все вместе. Это позволит вам увидеть, как все работает в режиме по умолчанию и, возможно, дает вам лучшее представление о том, что происходит. –

+0

Я действительно пытался удалить постоянную ссылку и, как я уже сказал, похоже, что во всех этих исследованиях я забыл самую основную часть: удаление этой косой черты. Я продолжал думать, что мне нужно *, чтобы поставить переднюю косую черту, и просто нужно было установить baseurl и забыть все об удалении косой черты. Я благодарю вас за то, что вы указали мне это. Спасибо-спасибо! – corroded

+0

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

26

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


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

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

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

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

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

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

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

Подробнее об этой проблеме на issue #332.

+3

+1 это должен быть правильный ответ –

+1

Почему это еще не было выбрано как правильный ответ? –

Смежные вопросы