为github PROJECT页面配置Jekyll

cor*_*ded 12 ruby github jekyll github-pages

我在这里结束了我的智慧.我一直在试图查看我能找到的所有其他示例github项目页面,甚至是博客,但没有一个表现出我遇到的问题.首先,我正在尝试为我的仓库创建一个项目页面.我按照通常的教程,在我的项目仓库和推送中创建了一个gh-pages分支.

我设法做了这些并模板化我的文件.我甚至设法使用HAML和SASS(它们仍然被转换为html/css,这就是我推送到repo所以没有问题).我只是认为我正在配置我的jekyll错误.首先,我没有看到在config.yml上使用baseurl或url的其他人页面中的任何配置.

我的问题是在我的帖子中循环:

{% for post in site.posts %}
  <a href="{{ post.url }}">{{ post.title }}</a>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

它总是生成href为 href="/post-title"

我的_config.ymlbtw只有这个:

permalink: /exercises/:title
Run Code Online (Sandbox Code Playgroud)

当我点击链接时出现这个问题,它总是指向http://corroded.github.com/exercises/title-其实应该是http://corroded.github.com/projectname/exercises/title-这里

我实际上尝试通过以下方式对路径进行硬编码:

<a href="http://corroded.github.com{{ post.url }}">这很有效.它转到帖子但是它显示为纯文本而不是生成的html.我知道我在这里错过了一些非常简单的东西,但我似乎无法找到它,整个周末我一直在努力解决这个问题.

哦,我忘了添加:在我的localhost中执行此操作,我可以访问以下所有内容:

http://localhost:4000/并点击链接将让我http://localhost:4000/exercises/title-here和IT工作.所以我很好地猜测它与配置有关.

mjs*_*sen 28

编辑:此答案已添加到http://jekyllrb.com/docs/github-pages/的Jekyll文档中.


如果你正在寻找一个带有GitHub Pages(username.github.io/project-name/)标准URL的解决方案,我终于找到了诀窍.这是做什么的:

_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 ''

这样,您可以从localhost上的站点根目录本地预览您的站点,但是当GitHub从gh-pages分支生成您的页面时,所有URL都将从/project-name正确开始并正确解析.

问题#332上关于这个问题的更多讨论.

  • +1这应该是正确的答案 (3认同)

Ala*_*ith 9

如果在永久链接的前面有斜杠,则表示所有URL都应该相对于站点根目录.这就是它http://corroded.github.com/exercises/title-here取而代之的原因http://corroded.github.com/projectname/exercises/title-here.没有第一个斜线尝试它:

permalink: exercises/:title
Run Code Online (Sandbox Code Playgroud)

您使用HTML创建的任何网址都是一样的.如果你有:

<a href="/about">
Run Code Online (Sandbox Code Playgroud)

它总是会到域的根源(例如http://corroded.github.com/about).如果您的项目名为'projectname',则可以使用HTML

<a href="/projectname/about">
Run Code Online (Sandbox Code Playgroud)

直接链接到页面(例如http://corroded.github.com/projectname/about).

当然,您也可以使用相对URL(即没有前导斜杠的URL).您只需要知道您在目录树中的位置.