我想head.html
在jekyll serve
本地运行时添加以下行:
<script src="http://127.0.0.1:35729/livereload.js?snipver=1"></script>
Run Code Online (Sandbox Code Playgroud)
如果可能的话,我正在考虑使用一些简单的液体检查.
Dav*_*uel 10
在jekyll serve
本地执行时,默认{{ jekyll.environment }}
变量设置为"development"
.
然后你可以做一个简单的事情:
{% if jekyll.environment == "development" %}
<script src="http://127.0.0.1:35729/livereload.js?snipver=1"></script>
{% endif %}
Run Code Online (Sandbox Code Playgroud)
如果要在另一个服务器上运行jekyll,使用其他environment
值,可以将JEKYLL_ENV
系统环境变量设置为您想要的任何值.
在运行时设置此变量可以这样完成:
JEKYLL_ENV=production jekyll serve
Run Code Online (Sandbox Code Playgroud)
注意:在Github Pages上,jekyll.environment
设置为production
.
替代解决方案(例如,如果您在自己的服务器上而不是在GitHub页面上托管您的Jekyll站点):
您可以在配置文件中设置一个值,_config.yml
如下所示:
environment: prod
Run Code Online (Sandbox Code Playgroud)
然后,你可以有另一个配置文件覆盖相同的值,我会称之为config_dev.yml
:
environment: dev
Run Code Online (Sandbox Code Playgroud)
当你刚刚调用时jekyll build
,它将使用prod
真实配置文件中的值.
但是当您在本地计算机上构建站点进行测试时,您将按以下顺序传递两个配置文件:
jekyll build --config _config.yml,_config_dev.yml
Run Code Online (Sandbox Code Playgroud)
第二个配置文件中的值将覆盖第一个配置文件中的值,因此environment
将设置为dev
.
然后你可以按照David的回答中描述的那样做:
{% if site.environment == "dev" %}
<script src="http://127.0.0.1:35729/livereload.js?snipver=1"></script>
{% endif %}
Run Code Online (Sandbox Code Playgroud)
您可以在我的博客的源代码中看到一个示例:
_config.yml
_config_dev.yml
jekyll build
"dev"模式运行environment
变量: