站点根目录:Github Pages与`jekyll --server`

And*_*rio 23 jekyll github-pages

当我运行jekyll --server我的网站时可以使用http://localhost:4000/,但是当我部署到GitHub项目页面时,它可以在http://username.github.com/projectname/.

这意味着在引用样式表和其他资源时我不能使用绝对URL.当例如index.html和使用相同的布局时,相对URL会中断2012/01/01/happy-new-year.html.将样式表和其他资源添加到GitHub Project Pages存储库的接受/好方法是什么?

交叉发布到GitHub问题.

Pab*_*rro 29

出现此问题是因为根目录始终是用户和项目页面中的用户URL(user.github.com).我找到了一个解决方案:url_config.yml文件中的变量配置到github项目页面:

safe: true
...
url: "http://user.github.io/project-name"
Run Code Online (Sandbox Code Playgroud)

然后,在布局中,使用绝对引用,使用site.url变量来做到这一点:

<link rel="stylesheet" href="{{ site.url }}/css/styles.css">
Run Code Online (Sandbox Code Playgroud)

并运行服务器:

$jekyll --server --url=http://localhost:4000
Run Code Online (Sandbox Code Playgroud)

命令行选项以本地模式覆盖配置文件中的设置.通过这些设置,我可以获得指向正确位置的所有链接,这些链接都以github和本地模式托管.


UPDATE:化身1.0由于化身达到1.0时,aforemetioned选项serverurl与其相应的命令行选项--server--url已被弃用.新版本的说明:

_config.yml文件中,添加变量baseurl(不带斜杠):

baseurl: "http://user.github.io/project-name"
Run Code Online (Sandbox Code Playgroud)

在布局或页面中,使用绝对引用,使用site.baseurl变量:

<link rel="stylesheet" href="{{ site.baseurl }}/css/styles.css">
Run Code Online (Sandbox Code Playgroud)

然后,运行本地服务器(baseurl选项有意为空):

$ jekyll serve --watch --baseurl=
Run Code Online (Sandbox Code Playgroud)

有关文档更改的更多详细信息.


小智 0

我使用 jekyll-bootstrap 并在端口 4000 上进行本地部署,但我的 github 页面 url 是 user.github.com...我认为这取决于您最初创建存储库的方式。最初我使用了 github 提供的自动页面构建器,它以非常类似于向导的方式创建了存储库。

我只是按照以下步骤操作:

http://jekyllbootstrap.com/

希望有帮助