利用Vagrant部署开发环境,使用目录共享模式,在本地磁盘进行开发,通过虚拟机环境运行开发的页面。
接下来打开页面,看上去一切正常,接下来将发生一个神奇的事情,你修改一个css文件,在刷新浏览器,发现什么都没有改变,然后你非常猛烈、使劲的按F5,依旧还是没有改变,是的,你看看编辑器,似乎替换是正常的,在看看虚拟机上的文件,也都是对的,然后尝试重启nginx,依旧没有任何变化,你开始怀疑php7-fpm甚至于毫不相干的memcached和mysql惹的祸,但都无济于事。也不知道是什么让这些文件被“缓存”了。
当你尝试修改一个js,并且用同样的方法更新之后,会遇到类似的问题,是的,就算重启虚拟机上任何服务,甚至重启虚拟机,依旧没有用,当然,比起其他资源文件,浏览器的反应会强烈一些,因为浏览器会提示未知错误,而你通过浏览器查看你修改的JS文件,会看到文件尾巴有下面奇怪的随机字符:�����������������,这到底是什么东西呢?编码错误?缓存异常?又或是其他什么?是的,你尝试花费很多时间,试验各种各样的方法去解决这个问题,其实对于nginx来说,你只需要修改配置文件(nginx.conf)中的一行重启就能简单的解决这个问题:
找到 nginx.conf ,把里面的 “sendfile on” 修改为 “sendfile off”。
当然,如果你使用Apache也可能遇到类似的问题,那么同样也有类似的配置需要修改:
EnableSendfile off