jekyll 中有一个名为 production_url 的配置参数。我找不到有关如何使用它的任何信息。
理想情况下,我希望能够在使用参数运行时使用本地 url 生成永久链接,并在使用serve
参数运行时使用生产 url生成永久链接build
。
我怎么能那样做?
jekyll 中有一个名为 production_url 的配置参数。我找不到有关如何使用它的任何信息。
理想情况下,我希望能够在使用参数运行时使用本地 url 生成永久链接,并在使用serve
参数运行时使用生产 url生成永久链接build
。
我怎么能那样做?
当您构建 Jekyll 网站时,可以使用JEKYLL_ENV
环境变量指定它用于构建的环境:
$ JEKYLL_ENV=production jekyll build
如果您没有JEKYLL_ENV
明确设置,则默认为开发。
{% if jekyll.environment == "production" %}
// Production environment.
{% endif %}
Github Pages 自动将环境设置为生产环境。
我在当前版本(v1.4.1)中看不到变量 production_url,所以这可能是一个过时的问题——但我自己只是在寻找这个答案。有一个 baseurl 属性可以设置一个标志,以便更改文件的路径,但它只调整相对路径。
jekyll serve --baseurl '/blog'
您可以做的是使用 -config 选项指定用于开发的配置文件。
您的生产配置变量在 _config.yml 中定义。一种选择是为开发创建一个单独的配置文件。
--config _config-dev.yml
您也可以(像我一样)覆盖在第二个配置文件中定义的变量。
--config _config.yml,_config-dev.yml
如果您将液体模板用于这样的站点链接:
<link rel="stylesheet" href="{{ site.base_url }}/stylesheets/blog.css">
那么您可以在本地开发期间覆盖 base_url 属性
base_url: http://localhost:4000
并在“开发”中运行 jekyll
jekyll serve -w --config _config.yml,_config-dev.yml
jekyll serve
将调用jekyll build
,因此您不能真正使用这两个作为输出不同 URL 方案的方式。
我构建了一个 Jekyll 插件,它使用Liquid 过滤器和一个用户定义的变量在您_config.yml
调用的mode
.
您将其设置mode
为开发或生产,插件会处理模板中的其余部分。
因此,在您的模板中,您可以有一个 URL,例如:
<img src="{{ '/img/dog.jpg' | to_absurl }}" />
mode
什么时候development,在 Jekyll build/serve 时,你会得到一个相对URL:
<img src="/img/dog.jpg" />
在本地,这将被访问为:http://0.0.0.0:4000/img/dog.jpg
何时生产,在 Jekyll 构建/服务时,您将获得一个mode
绝对URL:
<img src="http://www.domain.tld/img/dog.jpg" />
这http://www.domain.tld
是您在_config.yml
->url
变量中设置的内容。
您可以在此处查看有关插件的更多详细信息:
http://jhaurawachsman.com/2013/jekyll-url-helper-filter-plugin/
这也对我有用:
$ JEKYLL_ENV=production jekyll serve