Почему Rails кэширует просмотр файлов, если они размещены на виртуальной машине, а кодовая база — на общем ресурсе Samba
-
01-07-2019 - |
Вопрос
У меня есть следующая настройка:
- Код на моем локальном компьютере (OS X), доступный как общий ресурс Samba
- Виртуальная машина Ubuntu, работающая в Parallels, монтирует общий ресурс
Запуская Rails 2.1 (через Mongrel, WEBrick или пассажирский) в режиме разработки, если я вношу изменения в свои представления, они не обновляются без необходимости пинать сервер.Вместо этого я попытался переключиться на общий ресурс NFS, но столкнулся с той же проблемой.Я бы предположил, что это какая-то проблема с кешем Samba, но автотест мгновенно обнаруживает изменения в файлах.
Примечание:
- Это не кэширование рендеринга или кэширование шаблонов, и config.action_view.cache_template_loading не определен в конфигурации разработки.
- Проверка кодовой базы непосредственно на виртуальной машине не выявила той же проблемы (но я бы предпочел этого не делать)
- Редактирование файла представления непосредственно на виртуальной машине не решает эту проблему.
- Прикосновение к просмотренному файлу после внесения изменений приводит к появлению изменений в браузере.
- Я также заметил, что часы на виртуальной машине спешили на час, и изменение их на правильное время не имело никакого значения.
Решение
У меня была точно такая же проблема при разработке на andLinux.Часы моего andLinux опережали время на хост-Windows примерно на три часа, и установка правильного времени (на самом деле отставание на минуту или около того) решила проблему.
Другие советы
На самом деле, установка правильной даты и времени на виртуальной машине, похоже, решила проблему (после того, как я перезапустил Mongrel) — придется еще немного покопаться.