沒有必要安裝舊版本的jekyll - 您需要使用--force_polling
。解釋如下:
VirtualBox將不會將共享文件夾的inotify
事件發送給來賓。這是故意的:
傑基爾高達1.2.1版本將輪詢目錄在默認情況下的變化,但它已經改變了它偵聽的修改,顯然使用inotify
事件的方式,這樣效果更好。這確實突破聽力上的共享文件夾,雖然,但可以使用帶--watch
沿--force_polling
選項被強制舊行爲使用build
或serve
時:
jekyll serve --watch --force_polling
我發現了這一點,從一個相關的問題上哲基爾的回購:
更新:我現在開始通過VirtualBox自己使用jekyll,並且發現jekyll通過共享文件夾觀看文件有時會遇到輕微問題:它會讀取文件修改錯誤,導致文件應該未修改地複製到生成的網站與之前的版本相同,除了垃圾回車結束(即使文件格式設置爲unix行尾)。爲了解決這個問題,你可以使用rsync
將文件複製到虛擬硬盤驅動器,並化身觀看該目錄,而不是:
rsync -a --recursive --delete /source/directory/ /target/directory/inside/vm/
保留它的自動化,你可以把上面到一個腳本(或沒有)和使用watch
:
watch -n1 /path/to/rsync/script.sh
那麼就已經化身看目標目錄,它工作正常。如果你這樣做,--force_polling
應該是不必要的,除非你的虛擬化操作系統不使用inotify
事件。我已經離開了它,我沒有任何問題,雖然明確inotify
事件是一個更加優雅的方式來處理問題。
你運行的是什麼版本的jekyll?運行'jekyll -v'來查看。 – jbranchaud
我正在使用1.4.2 –
我發現了這個:https://github.com/jekyll/jekyll/issues/1763 - 似乎在'jekyll 1.2.1'之後,你只需要使用強制輪詢(add) '--force_polling')爲VirtualBox,因爲'inotify'事件不會發送到共享文件夾(如預期),所以'jekyll'必須手動輪詢文件。顯然'jekyll'用於強制輪詢默認最高1.2.1,後來改變。 – mechalynx