有没有办法检查本地是否提供 jekyll 站点服务?
Is there a way to check whether a jekyll site is being served locally?
我想仅在 运行 jekyll serve
本地时将以下行添加到我的 head.html
中:
<script src="http://127.0.0.1:35729/livereload.js?snipver=1"></script>
如果可能的话,我正在考虑使用一些简单的液体检查。
当您在本地执行 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
。
替代解决方案(例如,如果您将 Jekyll 站点托管在自己的服务器上而不是 GitHub 页面上):
您可以在配置文件 _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中看到一个例子:
_config.yml
_config_dev.yml
- Windows batch file to run
jekyll build
in "dev" mode
- Layout file,我使用
environment
变量来:
- 在开发模式下禁用Google分析
- 更改我加载 JS 和 CSS 文件的 URL
(开发模式:本地服务器/生产模式:CDN)
To preview your site with drafts, run jekyll serve
or jekyll build
with the --drafts
switch. Each will be assigned the value modification time of the draft file for its date, and thus you will see currently edited drafts as the latest posts.
你试过这个吗?
我想仅在 运行 jekyll serve
本地时将以下行添加到我的 head.html
中:
<script src="http://127.0.0.1:35729/livereload.js?snipver=1"></script>
如果可能的话,我正在考虑使用一些简单的液体检查。
当您在本地执行 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
。
替代解决方案(例如,如果您将 Jekyll 站点托管在自己的服务器上而不是 GitHub 页面上):
您可以在配置文件 _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中看到一个例子:
_config.yml
_config_dev.yml
- Windows batch file to run
jekyll build
in "dev" mode - Layout file,我使用
environment
变量来:- 在开发模式下禁用Google分析
- 更改我加载 JS 和 CSS 文件的 URL
(开发模式:本地服务器/生产模式:CDN)
To preview your site with drafts, run
jekyll serve
orjekyll build
with the--drafts
switch. Each will be assigned the value modification time of the draft file for its date, and thus you will see currently edited drafts as the latest posts.
你试过这个吗?