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