BrowserSync + Gulp с Vagrant, не освежающим

Я использую BrowserSync с Gulp для повторной загрузки сайта на локальном компьютере при изменении определенных типов файлов. У меня есть следующий фрагмент в gulpfile:

gulp.task('browser-sync', function() {
    browsersync.init({
        proxy: "mySite:8080",
        files: ["./*.html", "dev/*.css"]
    });
});

При изменении (и сохранении) любого из вышеуказанных типов файлов я получаю такой вывод в моем терминале:

[BS] Serving files from: ./
[BS] Watching files...
[BS] File changed: index.html
[BS] File changed: dev\styles.css

Все время сайт перезагружается, как ожидалось, но его содержимое не отражает изменений, которые были сделаны. Я не могу понять, что я делаю неправильно здесь. Любой намек оценили!


UPDATE

Я забыл упомянуть, что на моей главной машине работает Windows 10, а моя гостевая машина работает с Ubuntu 14.04.4 LTS. Поставщик виртуальной машины является VirtualBox.

Вначале я использовал метод config.vm.synced_folder по умолчанию. У меня это было на моем vagrantfile:

config.vm.synced_folder "/Path/To/My/Host/Website/Folder/", "/usr/nginx/html/mywebsite/"

С тех пор я пытался использовать NFS со следующей конфигурацией:

config.vm.synced_folder "/Path/To/My/Host/Website/Folder/", "/usr/nginx/html/mywebsite/", 
:type => :nfs, 
:mount_options => ['nolock,vers=3,udp,noatime,actimeo=1']

Поскольку мой хост работает под управлением Windows, я установил плагин vagrant-winnfsd, который добавляет поддержку NFS. Но теперь бродяга останавливается, когда пытается установить общую папку NFS.

Кроме того, поскольку я получил следующую ошибку на vagrant up: GuestAdditions versions on your host (5.0.16) and guest (4.3.36) do not match, я установил плагин vagrant-vbgues, в чтобы обновить гостевые дополнения VirtualBox. Безрезультатно. Vagrant все еще зависает, когда пытается установить общую папку NFS.

Ответ 1

Так получилось, что проблема связана с VirtualBox, как объясняется здесь. Поскольку я запускаю Nginx на виртуальной машине в VirtualBox, решение моей проблемы состояло в том, чтобы прокомментировать директиву sendfile в nginx.conf или просто отключить ее, например:

sendfile off;

О той же проблеме сообщается здесь, и здесь. Как и в Vagrant docs, в котором говорится, что "существует ошибка VirtualBox, связанная с sendfile, которая может привести к повреждению или не обновляющие файлы."

Ответ 2

Название и теги говорят, что вы используете Vagrant, хотя это не упоминается в вашем вопросе.

Убедитесь, что ваши изменения синхронизируются с виртуальной машиной. Посмотрите бродячую документацию, чтобы выбрать тип синхронизированных папок, которые будут работать для вашей ситуации. Их основной пример таков:

Vagrant.configure("2") do |config|
  # other config here

  config.vm.synced_folder "src/", "/srv/website"
end

Вы можете vagrant ssh и проверить файлы вручную, чтобы убедиться, что они совпадают, и что синхронизированные папки работают должным образом.

UPDATE

На основе новой информации и комментариев я бы рекомендовал использовать rsync как метод общих папок.

config.vm.synced_folder "Host/Path/", "/Guest/Path", type: "rsync",
    rsync__exclude: [ '.git', 'logs'],
    rsync__args: ["--verbose"],
    rsync__chown: false

Я никогда не нашел способ сделать NFS хорошо (и хорошо работать), если Windows находится в миксе.