我使用github托管我用jekyll构建的blog。
我读了another post和documentation我需要将site.baseurl
更改为site.github.url
以获取我的静态资源。这就是我所做的,现在一切正常。请参阅master
和gh-pages
之间的差异:
做起来并不是太痛苦,我只是在项目范围内用原子取代;但是,我想知道,有更好的解决方法吗?理想情况下,我喜欢我的工作流程,因此我可以使用normal branching model在我的博客上工作,然后与gh-pages
合并,就好像它是一个发布分支而不必担心每次进行搜索和替换。
感谢您的帮助:)
编辑:太奇怪了,我刚刚将master
与gh-pages
合并,似乎git只是为我自动处理了整个事情。如此不同的问题。当我进行合并时,git真的知道不要将site.github.url
更改为site.baseurl
吗?这有什么作用?
答案 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)
baseurl
空(baseurl: ""
)留在_config.yml
。 baseurl
添加到post_url
围绕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