我在这里结束了我的智慧。我一直在试图查看我能找到的所有其他示例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 %}
它总是将href生成为href="/post-title"
我的_config.yml
btw只有这个:
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。我知道我在这里错过了一些非常简单的东西,但我似乎无法找到它,整个周末我一直在努力解决这个问题。
哦,我忘了添加:在我的localhost中执行此操作,我可以访问以下所有内容:
http://localhost:4000/
并点击链接即可转到http://localhost:4000/exercises/title-here
和IT工作。所以我很好地猜测它与配置有关。
答案 0 :(得分:27)
编辑:此答案已添加到http://jekyllrb.com/docs/github-pages/的Jekyll文档中。
如果你正在寻找一个带有GitHub页面标准URL(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 ''
通过这种方式,您可以从localhost上的站点根目录本地预览您的站点,但是当GitHub从gh-pages分支生成您的页面时,所有URL都将以/project-name
开头并正确解析。
issue #332上有关此问题的更多对话。
答案 1 :(得分:9)
如果在永久链接的前面有斜杠,则表示所有URL都应该相对于站点根目录。这就是http://corroded.github.com/exercises/title-here
代替http://corroded.github.com/projectname/exercises/title-here
的原因。在没有第一个斜线的情况下尝试它:
permalink: exercises/:title
使用HTML创建的任何网址都是一样的。如果你有:
<a href="/about">
它将始终转到域的根目录(例如http://corroded.github.com/about
)。如果你的项目被称为'projectname',你可以使用像
<a href="/projectname/about">
直接链接到网页(例如http://corroded.github.com/projectname/about
)。
当然,您也可以使用relative URLs(即没有前导斜杠的网址)。您只需要知道您在目录树中的位置。