Мне настраивали CentOS 6.5 VM с помощью Apache HTTPD 2.2 в качестве веб-сервера, и я использую GulpJS для своего процесса сборки. То, когда я обновляю файл CSS выполнения процесса сборки GulpJS хорошо и если я смотрю на файл на VM I, видит обновления, однако при обслуживании через Apache HTTPD файл не имеет изменений в нем. Если я редактирую файл с помощью vi, не вношу изменений и просто сохраняю его снова Apache, HTTPD затем берет изменения и производит корректный файл.
Я отключил mod_cache модуль (например, прокомментировал директиву LoadModule для него), поскольку я думал, что это могло бы быть причиной, но это не имело никакого значения.
Кто-либо еще столкнулся с этой проблемой и знает, как зафиксировать ее?
[ОБНОВЛЕНИЕ] - Просто рассмотрение httpd доступа регистрируется, и я вижу, что файл подается httpd каждый раз, прежде и после обновлений, но ничто не изменяется:
192.168.56.1 - - [22/Jun/2014:09:27:42 +0100] "GET /includes/min/stylesheet.min.css HTTP/1.1" 200 135882 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36"
192.168.56.1 - - [22/Jun/2014:09:29:22 +0100] "GET /includes/min/stylesheet.min.css HTTP/1.1" 200 135878 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36"
Кроме длины файла. Это предположило бы, что httpd видит обновление файла, но это не обновляет в браузере. Я попробовал несколько различных браузеров, очистив кэши браузера, и т.д. но пока я не редактирую файл на сервере с помощью vi и сохраняю его снова, никакой браузер не загрузит новую версию файла, который возвращает меня размышлению httpd, все еще служит неверной версии файла. Таким образом нечетный.
[ОБНОВИТЕ 2] - я полагаю, что это могло бы быть чем-то, чтобы сделать с VirtualBox и совместно используемыми папками. Файлы для сайта находятся на хосте (Mac OS X 10.9.3) и скомпилированы там использующий NodeJS. Они компилируются в папку, которая совместно используется с гостем ОС (CentOS) использование совместно используемых папок VBOX. Если я смотрю на файл в каталоге через консоль, я вижу:
-rwxrwxrwx. 1 root root 135881 Jun 23 2014 stylesheet.min.css
Как Вы видите, вместо нормального Месяца, Дня и Времени для файла, он имеет Месяц, День и год вместо этого. Это выглядит неуместным мне, но я понятия не имею, что это означает или если это значительно.
Найдено решение для этого. Это была проблема с HTTPD кэшем Apache. Я вернул модули mod_cache и mod_disk_cache обратно и установил следующую директиву:
CacheDisable /
Это решило проблему. Не уверен, почему просто не загрузка кэш-модулей не дала такого же эффекта.
UPDATE: Хотя это и казалось решением проблемы некоторое время, но это не является реальным решением. На самом деле проблема оказалась в том, что машина работает на VirtualBox, а файлы, которые она обслуживает, находятся на хостовой машине и монтируются на гостевой с помощью vboxsf. Проблема и ее решение объясняется в следующем посте блога:
http://www.frandieguez.com/blog/2013/05/solving-caching-issues-with-vagrant-on-vboxsf/