杰基尔>服务>开发配置文件>被阅读但在开始时被忽略

时间:2016-05-29 07:46:51

标签: node.js jekyll

简短版

在今天启动jekyll服务时,会读取附加的dev配置文件但会被忽略。这是最近的一个问题。之前已按预期读取并操作开发设置。

我正在使用jekyll 2.5.3。

任何人都可以了解造成这种情况的原因吗?

LONG VERSION:

我使用Jekyll在本地开发,然后将生产版本上传到我的网站主机。

开发时我启动了jekyll的服务器,在主配置文件之后加载一个额外的dev配置文件(_cong_dev.yml)以激活开发设置。我使用的完整命令是:

jekyll serve --draft --host=0.0.0.0 --config _config.yml,_config_dev.yml

我使用grunt shell任务 - 因为我很懒。

这已经有一段时间了。

然而,今天,localhost将我带到了主页,但是链接是生产格式的 - 即使用siteurl标记的域。

从其他问题,我意识到dev配置文件中的设置没有被处理。

在服务流程的构建和服务器步骤中,正在读取dev配置文件:

C:\sites\MYSITE>grunt serve
Running "shell:jekyllServe" (shell) task
Configuration file: _config.yml
Configuration file: _config_dev.yml
            Source: C:/sites/MYSITE
       Destination: C:/sites/MYSITE/_site
      Generating...
                    done.
 Auto-regeneration: enabled for 'C:/sites/MYSITE'
Configuration file: _config.yml
Configuration file: _config_dev.yml
    Server address: http://0.0.0.0:4000/
  Server running... press ctrl-c to stop.

正如您所看到的,dev文件正在被确认,但看起来它的内容被忽略了。

我可以:

  1. 打开dev配置文件;
  2. 改变它;
  3. 保存;
  4. 这将触发重建,并再次激活所有开发设置。

    但这不太理想。

    供参考:

    • 我输入了完整的jekyll命令,而不是使用grunt shell - 正如所料,没有区别。

    • 我没有更新jekyll或其任何依赖项....

    • ...除了我最近将node.js从4.5~ish更新到当前的6.2。

    • 我最近在_config_dev.yml文件中添加了一个用于实时重载的键:值对,我认为这可能最初填充了yml的解析。但我通过将值转换为字符串等来解决这个问题,问题仍然存在。

    我承认我没有测试回滚node.js.部分是因为我无法真正看到这将是一个问题,部分是因为我需要当前版本的node.js教程,我正在做。

    但是,如果没有其他答案可以提供见解,我可以尝试一下。

    编辑:我正在使用Jekyll 2.5.3。

    编辑:我还注意到这个问题似乎类似https://github.com/jekyll/jekyll/issues/4850(所以我会留意这一点)。

    有人可以解释这个问题吗?

    提前谢谢。

1 个答案:

答案 0 :(得分:0)

这是令人尴尬的......

如果其他人有这个问题,我会发布我的答案 - 不幸的是,这不是我第一次不得不承担我自己的愚蠢错误。

为了澄清,问题实际上是该网站未在jekyll serve上以预期的开发模式加载,但是,正如我发现的那样,在后续的regens上以开发模式加载。

问题的原因是因为我在某个时刻以某种方式生成了站点,其输出文件与其各自的.md文件旁边的目标映射,而不是/_sites文件夹。这些文件是以生产格式创建的,而不是开发格式(很可能是从构建而不是服务任务创建的)。

因此,例如,在我的/about文件夹中,有一个index.md(正确)和一个生产版本index.html(不正确)。

我真的不知道我是如何管理它的,但我希望我在某一时刻不正确地设置了一个咕噜咕噜的任务。

在这种情况下,那些文件意味着:

  1. jekyll serve上,Jekyll只是创建了复制已创建的index.html文件的网站 - 因此以生产格式创建网站;但
  2. 在随后的重新生成中,Jekyll重建了读取.md文件并以预期的开发格式创建它的网站。
  3. 我不知道为什么第一个构建过程会产生与后续构建过程不同的结果,但这是由by。

    如果发生这种情况,删除其他生成的文件可以解决问题。