有没有办法检查jekyll网站是否在本地提供?

时间:2015-07-07 16:40:31

标签: jekyll liquid

我希望仅在本地运行head.html时将以下行添加到jekyll serve

  <script src="http://127.0.0.1:35729/livereload.js?snipver=1"></script>

我想尽可能使用一些简单的液体检查。

3 个答案:

答案 0 :(得分:8)

当您在本地执行jekyll serve时,默认{{ jekyll.environment }}变量设置为"development"

然后你可以做一个简单的事情:

{% if jekyll.environment == "development" %}
  <script src="http://127.0.0.1:35729/livereload.js?snipver=1"></script>
{% endif %}

如果您想在其他服务器上运行jekyll,并使用其他environment值,则可以将JEKYLL_ENV 系统环境变量设置为您想要的任何内容。

在运行时设置此变量可以这样做:

JEKYLL_ENV=production jekyll serve

注意:在Github页面上,jekyll.environment设置为production

答案 1 :(得分:8)

替代解决方案(例如,如果您在自己的服务器上而不是在GitHub页面上托管您的Jekyll网站)

您可以在配置文件_config.yml中设置一个值,如下所示:

environment: prod

然后,您可以使用另一个覆盖相同值的配置文件,我将其称为config_dev.yml

environment: dev

当您拨打jekyll build时,它将使用真实配置文件中的值prod

但是当您在本地计算机上构建站点进行测试时,您将按以下顺序传递两个配置文件:

jekyll build --config _config.yml,_config_dev.yml

第二个配置文件中的值将覆盖第一个配置文件中的值,因此environment将设置为dev

然后你可以按照David的回答中所描述的那样做:

{% if site.environment == "dev" %}
  <script src="http://127.0.0.1:35729/livereload.js?snipver=1"></script>
{% endif %}

您可以在the source code of my blog中看到一个示例:

答案 2 :(得分:0)

  

要预览带有草稿的网站,请使用jekyll serve开关运行jekyll build--drafts。每个人都将获得其日期的草稿文件的值修改时间,因此您将看到当前编辑的草稿为最新帖子。

您尝试过吗?

https://jekyllrb.com/docs/posts/

相关问题