如何避免更改site.baseurl - > master / gh-pages之间的site.github.url?

时间:2016-09-09 18:31:50

标签: git github jekyll

我使用github托管我用jekyll构建的blog

我读了another postdocumentation我需要将site.baseurl更改为site.github.url以获取我的静态资源。这就是我所做的,现在一切正常。请参阅mastergh-pages之间的差异:

enter image description here

做起来并不是太痛苦,我只是在项目范围内用原子取代;但是,我想知道,有更好的解决方法吗?理想情况下,我喜欢我的工作流程,因此我可以使用normal branching model在我的博客上工作,然后与gh-pages合并,就好像它是一个发布分支而不必担心每次进行搜索和替换。

感谢您的帮助:)

编辑:太奇怪了,我刚刚将mastergh-pages合并,似乎git只是为我自动处理了整个事情。如此不同的问题。当我进行合并时,git真的知道不要将site.github.url更改为site.baseurl吗?这有什么作用?

3 个答案:

答案 0 :(得分:4)

As of Jekyll 3.3,如果您使用的是最新版本的github-pages gem,现在可以在任何地方使用site.url。在开发中,它将自动设置为localhost,在生产中它将被设置为适当的Github URL。

答案 1 :(得分:1)

您可以使用jekyll.environment

执行此操作
{% if jekyll.environment == "production" %}
  <a class="post-link" href="{{ post.url | prepend: site.github.url }}">{{ post.title }}</a>
{% else %}
  <a class="post-link" href="{{ post.url | prepend: site.baseurl }}">{{ post.title }}</a>
{% endif %}

在构建命令中,您必须设置JEKYLL_ENV=production。这是由GitHub自动完成的。对于其他平台,您可能必须手动执行此操作(例如,在 Rakefile 中):

JEKYLL_ENV=production jekyll build

默认情况下,JEKYLL_ENV等于development

答案 2 :(得分:0)

  1. 您可以将baseurl空(baseurl: "")留在_config.yml
  2. 在这种情况下,您不需要将baseurl添加到post_url
  3. 围绕baseurl和url存在一些混淆,你可能想要阅读Jekyll的维护者的这个澄清: https://byparker.com/blog/2014/clearing-up-confusion-around-baseurl/

    site.url: https://domain.com # your domain
    site.baseurl: "/blog" # the path to your website (optionnal)
    site.github.url: https://username.github.io # your GitHub URL