【问题标题】:Can't save when running "jekyll serve" on Windows 8.1, Notepad++在 Windows 8.1、Notepad++ 上运行“jekyll serve”时无法保存
【发布时间】:2015-04-30 05:45:32
【问题描述】:

我正在尝试在本地使用 jekyll 来构建我的网站。一切都设置好了,我可以在 localhost:4000 构建和服务并查看结果。没有错误。

问题是当我运行“Jekyll serve”时,我无法保存文件。保存选项显示为灰色,并且“ctrl + s”不起作用。

我可以打开和编辑文件,可以“另存为”和做其他事情——基本上除了保存之外的任何事情。

我可以在不提供文件时保存文件。

据我了解,Jekyll 旨在用于在服务时进行保存,以便我们可以随时看到我们所做的更改。自动重新生成功能(现在是 serve 的默认功能)支持这种使用。

我怀疑这个问题与某种权限类型的规则有关,阻止我编辑正在使用的文件。

但由于我是自学成才的新手,不是开发人员/程序员,我不知道这是否与我如何设置 jekyll、notepad++、权限或其他完全有关。

这是我的环境:

  • Windows 8.1 64 位
  • Ruby v2.1.5p
  • Jekyll v2.5.1
  • wdm v0.1.0
  • RubyDevKit
  • Notepad++(在管理员模式下)

这是我尝试过的:

  1. 将 listen gem 从 v2.10.0 缩减到 v2.7.11(之前在 windows 网站上的 jekyll 上被列为安全/测试)

  2. 将 Jekyll 从 v2.5.3 缩减到 v2.5.1(较早的版本在 windows 网站上的 jekyll 上被列为安全/经过测试)

  3. 以管理员模式而不是普通模式打开 Notepad++。

  4. 尝试执行 jekyll serve --watch(以防 watch 启用保存)

我没有尝试重新安装 ruby​​ v2.1.3(在 Windows 网站上的 Jekyll 上列为安全/测试),因为 Jekyll 在其他方面工作我不想尝试重新安装,除非作为最后的手段 - 因为一个新手,我发现首先在 Windows 上安装它很痛苦。

谁能帮我解决这个(可能很简单)的问题?

感谢您提前提供的任何帮助。

【问题讨论】:

    标签: ruby windows-8.1 notepad++ jekyll


    【解决方案1】:

    好的。所以我觉得真的很傻。

    但是,与其假装这从未发生过,我最好发布这个答案,以防其他人像我一样有一个金发的“时刻”(阅读:一整天):

    首先,您不能在投放时编辑 _config.yml 文件。您可以编辑其他文件 - html、markdown 等 - 但不能编辑配置文件。

    其次,在 Notepad++ 中,您需要对文档进行实际更改,然后才会出现保存选项。

    我使用 _config 文件作为我的“测试”文档进行重新生成。虽然我确实打开了其他文件以检查我第一次认为我遇到问题的时间,但我认为我可能没有对它们进行任何更改 - 所以保存它们的选项从未激活过。之后,我只在修改后查看了配置文件。

    所以,我想我可能一直在服务期间能够省钱。

    但是,如果我错了并且不是我自己的愚蠢(我强烈怀疑),那么我采取的修复它的步骤是:

    1. 我的问题中列出的那些步骤;和

    2. 重新安装 Notepad++(由 'nerver neuror' 推荐,在我说这不起作用后,他/她删除了他/她的评论)。

    SORRY ...对不起,我去爬走并羞愧地躲起来...

    【讨论】:

    • 很好地找出了“神秘问题”并发布了相关信息!一个上升
    【解决方案2】:

    如果您当时正在编辑的文件只是_config.yml,那么预期的行为是保存的更改不会在 Jekyll 服务器运行/监视时反映出来。

    这是因为服务器是在读取_config.yml 中的配置设置后启动的,然后在此之后发生在该特殊文件上的更改不受 Jekyll 监控(这是截至 2015 年 5 月的最新情况,以防万一发生更改在将来)。 Currently this is by designsee this SO question as well

    这意味着,当 Jekyll 运行良好时,您一直在保存文件,只是没有更新更改。检查这一点的一种方法是进行一些更改,关闭文件,然后再次打开它(如果您想更加确定,请在另一个编辑器中打开)并查看是否显示反映的更改。

    服务器运行时对 Jekyll 中其他文件所做的更改将被反映。例如,如果我在博客文章中编辑错字、编辑 CSS 文件或更改某些格式,然后在任何文本编辑器中保存,Jekyll 会从头开始重新生成文件并您应该能够通过刷新localhost:4000 页面(或您的服务器运行的任何位置)来查看更改。

    我不确定在 Windows 上运行 Jekyll,但在 Linux 终端上,Jekyll 实际上通知了已更改的文件数量(带有时间戳),并且它重新生成了 X 个文件。类似的东西

    <timestamp> 3 files have changed. Regenerated 3 files in 0.0536 sec..

    最后,这可能不是您的问题,但我想我可能会在此处添加此内容以供将来参考,请勿编辑 _site 文件夹中的文件,因为它们总是在服务器重新启动时被删除和重新生成。手动编辑这些文件可能会保存并显示更改,但更改会丢失(因为它们是 Jekyll 每次都静态生成的)

    TL;DR您很可能一直在保存文件! _config.yml 中的更改在服务器运行后不会反映出来,必须重新启动才能使新的配置参数生效。

    【讨论】:

    • 你完全正确,@matrixanomaly。这就是为什么我发布我的答案的本质(现在我已经 +1 了你的答案) - 正如我认为你在最后看到的那样。您对“为什么”的解释很有帮助。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-17
    • 1970-01-01
    相关资源
    最近更新 更多