Регенерация Джекила не работает внутри Vagrant

Запуск команды, выполняемой иначе:

jekyll serve --watch

внутри Vagrant не приводит к регенерации файлов, если я не перезапущу сервер jekyll. Я редактирую Windows. Это проблема с Jekyll, работающим внутри Vagrant или есть какая-то конфигурация, которую мне нужно сделать, чтобы сделать эту работу? Я даже пробовал использовать мастера со следующей конфигурацией Procfile, но с тем же результатом

web: jekyll serve --watch

Ответы

Ответ 1

Мое предположение, основанное не что иное, как мой собственный опыт этой проблемы, заключается в том, что вы запускаете свой jekyll сайт в папке /vagrant, где брандмауэр отображает/синхронизирует с хостом os.

Эти сопоставленные или синхронизированные папки используют какой-то сумасшедший драйвер файловой системы (в основном тип общего сетевого ресурса), а функции просмотра файлов не работают на них.

Этот вопрос SO показывает тот же самый симптом.

(Вы увидите, что я имею в виду, что вы запустили свой сайт jekyll вне `/vagrant ', как в домашней папке. Внесите изменения (используя nano), и вы увидите срабатывание регенерации)

Ответ 2

Он реализован в последней предварительной версии (jekyll 2.0.0.alpha.3 к моменту написания).

Вам следует использовать опцию - force_polling, чтобы получить от нее выгоду.

Попробуйте запустить сервер jekyll следующим образом:

jekyll serve --watch --force_polling

Ответ 3

Какой провайдер вы используете? Я смог заставить его работать в Windows 8 с помощью Virtual Box в качестве поставщика и Ubuntu 12.04 в качестве гостевой ОС. Я должен был использовать версию 1.2.1, а не последнюю версию.

Когда я использую последнюю версию Jekyll (1.4.2), часы работают не так, как ожидалось (он не замечает изменения файла и не восстанавливается). Он работает, когда я редактирую их на гостевой ОС, хотя (он замечает изменение файла и будет перестраиваться).

Версия 1.2.1 работает независимо от того, где файлы отредактированы (гостевая ОС или хост-ОС).

Чтобы вернуться к версии 1.2.1, я выполнил следующие команды:

gem uninstall jekyll
gem install jekyll -v 1.2.1

Примечание. Сайт jekyll запускается из бродячего каталога

Ответ 4

В бродяжнике просто добавьте -force_polling, тогда jekyll будет смотреть почти все файлы, кроме "_config.yml"

jekyll serve --force_polling

При изменении других файлов, кроме "_config.yml", вы увидите регенерацию.

Но если вы меняете "_config.yml", это не приведет к регенерации.

За исключением регенерации, когда вы меняете "_config.yml"?

Ответ 5

Мое предположение (не зная подробностей) заключается в том, что вам нужно работать без головок, как в:

jekyll serve -w --detach

как указано в документации jekyll. Если это не так, то опишите проблему более подробно, о чем я спросил в комментарии. Кроме того, вы используете какой-либо тип обеспечения в Vagrant, например. оболочка, шеф-повар, правша и т.д.