Posts /

在配置jekyll过程中遇到的问题!

Twitter Facebook Google+
27 Oct 2016

       在昨天在Windows中配置jekyll的过程中出现了一些问题,在此写篇博客以作总结 。

       通常我们可以用 jekyll serve 命令来启动一个基于jekyll的 web服务以便于本地预览代码效果以及代码的调试。

       但是在昨天,我身为一个新手按照在 Setting up your GitHub Pages site locally with Jekyll 页面的教程进行了配置,并启动了 step4 中的捆扎器系列命令 bundle exec jekyll serve

       然后,我开始面临一系列的问题:

       首先,我的这个文件夹放在了桌面,因为我只是想测试一下 GitHub Pages 的一系列流程,现在 GitHub Pages 的流程测试完了,我就想把这个文件夹删除,然后正式的在一个我希望的位置来重新开始一个稳定的流程,这时问题出现了,这个桌面上的文件夹无法删除,因为好像什么进程占用了它,而我也不知如何关闭它。

       那么好吧,我暂时抛却了这个问题不管,去我希望的位置重新开始了一个 jekyll ,一切良好,GitHub 线上的内容可以良好的运行。

       但是,等等。jekyll 干什么用来着?我细想了一下,好像 jekyll 的主要功能之一就是可以在本地浏览器预览效果吧,于是我在本地直接访问localhost:4000,结果,不对呀,怎么不是我当前编辑内容所在的博客?

       经过一番查找,发现其中一个问题在于, jekyll serve 并无法进行服务覆盖,及在第一个服务启动的情况下,第二个 jekyll serve 无法覆盖第一个 jekyll serve 生成的进程,由此导致的情况就是 localhost:4000 默认访问第一个 jekyll serve 生成的进程,于是我在第二个位置生成和启动的服务就不知如何访问。

       另一个问题则是教程 step3 (请前往链接内容查看详情)会修改一些配置,而这些也会导致一些我不知道的配置变化。由此会导致 jekyll serve 命令报错;而之前我进行第一次尝试操作时,用的并不是 jekyll serve 命令,而是 step4 中的捆扎器系列命令 bundle exec jekyll serve

       好吧,我开始着手解决这些问题,我先在任务管理器关闭了所有能看见的有关于jekyll的进程,然后直接删除第一个文件夹,去我的第二个文件夹(我希望的位置)去打算使用 jekyll serve 来启动本地服务,结果启动失败了,期间提示给我一个 bug 说是版本问题,然后我复制该提示去 Google 寻找了很多解决答案,去逐一试验。最终终于使本地实现了预览功能,其试验的过程如下:

使用
$gem cleanup lumberjack
$gem list lumberjack
$gem uninstall
$bundle exec guard
$bundle exec rspec
这几个命令用来清除因 jekyll 多版本而产生的问题,但这些命令并没有解决我的问题,而且有报错;
这几个命令来自于 stackoverflow ,链接是 Unresolved specs during Gem::Specification.reset:

       而真正解决我的问题是下一个命令( next answer 和上一部分来自同一页面),这个方法虽然很笨,但的确解决了我的问题:

       bundle clean --force 这个命令帮我清除了一系列的相关关系,然后我用bundle exec jekyll new . --force重新安装了 jekyll,这使得bundle exec jekyll serve得以成功启动本地的预览服务,现在我终于实现了在本地用 localhost:4000 地址来访问我的博客框架

前往 Jekyll docs 可以得到更多帮助。更多bug和特性需求,可以前往这个链接 Jekyll’s GitHub repo。 如果你有疑问可以在这里和大家一起讨论: Jekyll Talk


Twitter Facebook Google+