运行其他工作命令:
jekyll serve --watch
Vagrant 内部不会导致文件的重新生成,除非我重新启动 jekyll 服务器。我在 Windows 上编辑。这是 Jekyll 在 Vagrant 中运行的问题,还是我需要做一些配置才能使其工作?我什至尝试使用具有以下 Procfile 配置的工头,但结果相同
web: jekyll serve --watch
它在最新的预发行版中实现(在撰写本文时为 jekyll 2.0.0.alpha.3)。
您应该使用--force_polling选项来从中受益。
尝试像这样运行 jekyll 服务器:
jekyll serve --watch --force_polling
我的猜测是,根据我自己对这个问题的经验,您正在将jekyll
站点运行在/vagrant
vagrant 映射/同步回主机操作系统的文件夹中。
这些映射或同步的文件夹正在使用某种疯狂的文件系统驱动程序(基本上是一种网络共享),并且文件监视功能不适用于它们。
这个 SO question显示了相同的症状。
(你会明白我的意思是你在主文件夹中的 /vagrant 之外运行你的 jekyll 站点。进行更改(使用 nano),你将看到 Regeneration 触发)
您使用的是什么提供商?我能够使用 Virtual Box 作为提供程序并使用 Ubuntu 12.04 作为来宾操作系统,使其在 Windows 8 上运行。但是,我必须使用 1.2.1 版本而不是最新版本。
当我使用最新的 Jekyll 版本 (1.4.2) 时,手表无法按预期工作(它不会注意到文件更改并且不会重建)。当我在来宾操作系统上编辑它们时它确实有效(它确实注意到文件更改并将重建)。
1.2.1 版无论文件是从哪里编辑的(来宾操作系统或主机操作系统)都可以工作。
为了恢复到 1.2.1 版本,我运行了以下命令:
gem uninstall jekyll
gem install jekyll -v 1.2.1
注意:jekyll 站点是从 vagrant 目录运行的
在 vagrant 中,只需添加 --force_polling,然后 jekyll 将监视除“_config.yml”之外的几乎所有文件
jekyll serve --force_polling
当您更改“_config.yml”以外的其他文件时,您将看到重新生成。
但是,如果您更改“_config.yml”,它不会触发重新生成。
更改“_config.yml”时是否排除再生?
我的猜测(不知道细节)是你需要无头运行,如:
jekyll serve -w --detach
如jekyll 文档中所述。如果不是这样,请更详细地描述该问题,正如我在评论中所问的那样。另外,您是否在 Vagrant 中使用任何类型的配置器,例如 shell、chef、ansible 等?