对在本地运行jekyll网站的路径感到困惑

时间:2016-09-23 13:18:21

标签: jekyll github-pages

我在GitHub页面上托管我的网站,因此我在网址中使用了site.github.url(如文档中所述)。像这样:

<a href="{{ page.url | prepend: site.github.url }}">{{ page.title }}</a>

在文档中也有人说

  

通过这种方式,您可以从localhost上的站点根目录本地预览您的站点,但是当GitHub从gh-pages分支生成您的页面时,所有URL都将正确解析。

现在我尝试在本地预览它,但所有链接前面都有http://my-username.github.io/

我做错了什么?也许我错过了什么?

1 个答案:

答案 0 :(得分:1)

在本地,您可以使用_config_local.yml覆盖默认网址值。

_config_local.yml

中添加此内容
github:
  url: http://localhost:4000

然后你可以启动Jekyll并要求解析这两个配置文件:

bundle exec jekyll build --config _config.yml, _config_local.yml

bundle exec jekyll serve --config _config.yml,_config_local.yml

可选:您可以为命令添加别名,或使用rake启动任务。

rake gem添加到Gemfile

group :development do
  gem 'rake'
end

使用bundle install

安装

创建Rakefile

touch Rakefile

将此内容复制到Rakefile

require 'jekyll'

task :build do

options = {
  'trace'       => true,
  'verbose'     => true,
  'config' => %w(_config.yml _config_local.yml)
}
Jekyll::Commands::Build.process(options)
end

task :serve do
options = {
  'serving'     => true,
  'watch'       => true,
  'incremental' => true,
  'config'      => %w(_config.yml _config_local.yml)
}
Jekyll::Commands::Build.process(options)
Jekyll::Commands::Serve.process(options)
end

现在,您可以使用bundle exec rake buildbundle exec rake serve,而无需传递选项。