简短版
在今天启动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文件正在被确认,但看起来它的内容被忽略了。
我可以:
这将触发重建,并再次激活所有开发设置。
但这不太理想。
供参考:
我输入了完整的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(所以我会留意这一点)。
有人可以解释这个问题吗?
提前谢谢。
答案 0 :(得分:0)
这是令人尴尬的......
如果其他人有这个问题,我会发布我的答案 - 不幸的是,这不是我第一次不得不承担我自己的愚蠢错误。
为了澄清,问题实际上是该网站未在jekyll serve
上以预期的开发模式加载,但是,正如我发现的那样,在后续的regens上以开发模式加载。
问题的原因是因为我在某个时刻以某种方式生成了站点,其输出文件与其各自的.md文件旁边的目标映射,而不是/_sites
文件夹。这些文件是以生产格式创建的,而不是开发格式(很可能是从构建而不是服务任务创建的)。
因此,例如,在我的/about
文件夹中,有一个index.md(正确)和一个生产版本index.html(不正确)。
我真的不知道我是如何管理它的,但我希望我在某一时刻不正确地设置了一个咕噜咕噜的任务。
在这种情况下,那些文件意味着:
jekyll serve
上,Jekyll只是创建了复制已创建的index.html文件的网站 - 因此以生产格式创建网站;但我不知道为什么第一个构建过程会产生与后续构建过程不同的结果,但这是由by。
如果发生这种情况,删除其他生成的文件可以解决问题。