情景:本机win7,运行环境在virtualbox中,通过mount主机的文件夹来工作,修改过的文件不生效了!各种重启服务后,还是没作用。一会又不生效。 本来以为是nginx中缓存设置的问题,使尽各种解数,包括把expires设置为off,header中加Expire为0,给文件加时间戳,依然如此。果断google之,原来是virtualbox使用的特殊文件系统造成的。 apache和nginx中都有个默认开启的选项sendfile,表示通过内核文件指针来读取或复制文件,在vboxsf(virtualbox共享文件所使用的文件系统)中,sendfile会造成文件无法更新。于是我们无论怎么刷新,都只能看到第一次访问得到的文件了。 解决办法也很简单,将nginx.conf中设置sendfile off就可以了。 (责任编辑:IT) |