Image 使用Vagrant进行HAML/SASS开发时的图像显示/切断问题

Image 使用Vagrant进行HAML/SASS开发时的图像显示/切断问题,image,haml,virtualbox,imagesource,vagrant,Image,Haml,Virtualbox,Imagesource,Vagrant,我正在对一个Rails应用程序进行HAML/SASS更改,我在Mac OSX(Snow Leopard)上使用Vagrant/VirtualBox虚拟机在本地运行该应用程序,每当我对任何HAML/SASS文件中引用的图像进行更改时,我都会遇到一个非常奇怪的问题 下面是一个发生了什么的例子: 我在浏览器中打开本地Rails应用程序页面,所有图像都正确显示 我重新调整了图像的大小(使用Gimp)以使其更小并保存更改 我刷新页面以查看更改,原始图像仍在显示,但底部被切掉,与我制作图像的大小成比例 我

我正在对一个Rails应用程序进行HAML/SASS更改,我在Mac OSX(Snow Leopard)上使用Vagrant/VirtualBox虚拟机在本地运行该应用程序,每当我对任何HAML/SASS文件中引用的图像进行更改时,我都会遇到一个非常奇怪的问题

下面是一个发生了什么的例子:

  • 我在浏览器中打开本地Rails应用程序页面,所有图像都正确显示
  • 我重新调整了图像的大小(使用Gimp)以使其更小并保存更改
  • 我刷新页面以查看更改,原始图像仍在显示,但底部被切掉,与我制作图像的大小成比例
  • 我从目录中删除图像文件并硬刷新页面以查看发生了什么
  • 有时原始的截止图像仍然存在,有时它消失了,我只看到丢失的图像路径图标
  • 我将图像文件移回目录中,尝试并强制它重新调整大小
  • 有时这是第一次,有时我必须做3到4次,然后才能看到正确大小的图像
  • 有时我看到旧的截图重新出现,即使我刷新了页面,没有看到任何图像
如果对图像文件进行其他更改(例如,如果使用相同的文件名保存一个全新的图像),则可能会出现相同的问题。除了这个图像问题,所有对HAML/SASS文件的编辑都可以工作,我可以立即看到我的更改

我认为这可能是某种浏览器渲染/缓存问题,但Firefox和Chrome中也存在类似的问题。如果我使用Firebug,我有时可以看到正确的文件正在被提取,但它没有显示在页面本身中

我只能认为这和流浪汉有关。唯一能保证完全修复它的是限制流浪者的箱子,但这需要很长时间

我意识到这可能不是一个简单的问题,因为这可能与我们的Rails应用程序和Vagrant/VirtualBox的配置有关,但我只是想在这里发布这个问题,以防其他人也有类似的问题


谢谢

您可能看到的是VirtualBox共享文件夹文件系统与
sendfile
syscall一起存在的问题。如果您正在为VirtualBox共享文件夹中的文件提供服务,则需要在Web服务器上禁用
sendfile
。这样做很容易:

在Apache中,将此添加到配置中:
EnableSendfile off


在Nginx中,将以下内容添加到配置中:
sendfileoff

太好了,这个修复程序工作得很好。谢谢你解开这个谜!可能的dup: