Jekyll服务--baseurl''返回错误:无法复制TrueClass。使用--trace查看回溯

时间:2014-03-19 20:24:02

标签: ruby github jekyll base-url github-pages

我正在使用gh-pages为我的jekyll网站进行处理。

我一直在尝试开发,而不必在每次我想在本地提供jekyll时,在我的源的所有css,js和img文件之前删除/添加{{site.baseurl}}路径。

我有点卡在这里,因为每个人都说要传递一个像这样的空字符串:

jekyll serve --baseurl ""

但是当我这样做时,它会生成网站确定但返回:

error: can't dup TrueClass. Use --trace to view backtrace

似乎无法理解为什么我会收到此错误。

我的_config.yml或多或少看起来像这样:

url: "http://myjekyllsite.github.io/"
baseurl: "/my-baseurl"

我已将我的js和css文件链接起来,并添加了我的图片的路径,如下所示:

<img src="{{ site.baseurl }}/img/image1.jpg">

我使用的唯一插件是jekyll-sass

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我没有找到修复dup TrueClass的传统方法,但我找到了一个很好的解决方法,所以我可以在本地开发,而不必每次都切换这些路径。

在gh-pages到jekyll的指南中: http://jekyllrb.com/docs/github-pages/

他们明确声明_config.yml中的baseurl上没有尾部斜杠。我发现不遵循他们的建议并在_config.yml中使用尾部斜杠,如下所示:

baseurl: /my-path/

我可以让所有其他链接仍然使用{{site.baseurl}}路径,而不使用前导斜杠并使用:

jekyll serve --baseurl '/' -w

所以我的所有路径都运转得很好。 例如:

<link rel="stylesheet" href="{{ site.baseurl }}css/sytle.css">

这样,当我向gh页面推送时,它也能正常工作。