Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Проблема с отображением/обрезкой изображения при использовании Vagrant для разработки HAML/SASS

Автор вопроса: Jamie AndrewsОтветов: 1

Я делаю изменения HAML/SASS для приложения Rails, которое я запускаю локально, используя виртуальную машину Vagrant/VirtualBox на Mac OSX (Snow Leopard), и я продолжаю сталкиваться с действительно странной проблемой всякий раз, когда я вношу изменения в изображение, на которое ссылается любой файлов HAML/SASS.

Вот пример того, что происходит:

  • Я открываю локальную страницу приложения Rails в своем браузере, и все изображения отображаются правильно
  • Я изменяю размер изображения (используя Gimp), чтобы уменьшить его, и сохраняю изменения
  • Я обновляю страницу, чтобы увидеть изменения, и исходное изображение по-прежнему отображается, но с обрезанным низом пропорционально тому, насколько меньше я сделал изображение
  • Я удаляю файл изображения из каталога и жестко обновляю страницу, чтобы посмотреть, что произойдет.
  • Иногда исходное обрезанное изображение все еще там, иногда оно исчезает, и я просто вижу значок отсутствующего пути к изображению.
  • Я перемещаю файл изображения обратно в каталог, чтобы попытаться заставить его принять изменение размера
  • Иногда это работает с первого раза, иногда мне приходится делать это 3 или 4 раза, прежде чем я увижу изображение правильного размера.
  • Иногда я вижу, что старое обрезанное изображение снова появляется, даже после того, как я обновил страницу и не увидел изображения!

Та же проблема возникает, если я вношу другие изменения в файл изображения (например, если я сохраняю совершенно новое изображение с тем же именем файла). Помимо этой проблемы с изображением, все изменения в файлах HAML/SASS работают, и я могу мгновенно увидеть свои изменения.

Я думал, что это может быть какая-то проблема с рендерингом/кэшированием в браузере, но аналогичные проблемы возникают в Firefox и Chrome. Если я использую Firebug, я иногда вижу, что правильный файл подбирается, но он не отображается на самой странице.

Я могу только думать, что это как-то связано с Vagrant. Единственное, что гарантированно исправит это полностью, - это переустановка коробки Vagrant, но это занимает много времени.

Я понимаю, что это может быть непростая проблема, поскольку она может иметь какое-то отношение к нашему приложению Rails и конфигурации Vagrant/VirtualBox, но я просто подумал, что опубликую здесь проблему на случай, если у кого-то еще возникнут подобные проблемы.

Спасибо!

  • Возможное дублирование: stackoverflow.com/questions/9479117 / ANeves thinks SE is evil 23.10.2012

imagevirtualboxvagranthamlimagesource

Ответы

Ответ 1 · рейтинг 2 · Mitchell

То, что вы, вероятно, видите, - это проблема, связанная с файловой системой общих папок VirtualBox вместе с системным вызовом sendfile. Вам необходимо отключить использование sendfile на вашем веб-сервере, если вы обслуживаете файлы из общей папки VirtualBox. Сделать это легко:

В Apache добавьте это в свою конфигурацию: EnableSendfile off

В Nginx добавьте это в свою конфигурацию: sendfile off;

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы