VirtualBox 静态文件(js, css 等)无法更新并在最后出现乱码


作者: 我不是鱼 (2017-02-21 20:01) 分类: Linux   标签: VirtualBox Vagrant sendfile

我本地的开发环境是 Mac + Vagrant + VirtualBox + CentOS 7 + nginx, 通过共享文件夹方式把 Mac 下的程序文件共享到 CentOS 下进行测试。但在修改静态文件后,例如 js 或 css 文件,通过 nginx 浏览非但文件没有被修改,还在后面出现这样的乱码:

�����������������

修改的内容越多,乱码就越多。这个问题很烦人,导致本地无法调试页面样式。但只是本地有问题,上传到服务器相同的环境下又没有任何问题。

 终于在查阅 Vagrant 文档时找到了解决方法:https://www.vagrantup.com/docs/synced-folders/virtualbox.html

貌似是 VirtualBox 的一个bug,解决方法如下:

Niginx:

sendfile off;

可以加到 http, server 或 location 里边

Apache:

EnableSendfile Off

sendfile 并不是 nginx 的特性,而是 Linux kernel 2 版本之后出现的 zero-copy系统调用,来提高文件读取和传输的效率,目前已经被很多应用服务器支持,如 apache、samba、nginx 等。不过在本地将它关闭也无碍效率了。

前一篇: Vagrant, Installing Virtualbox Guest Additions 5.0.30 - guest version is unknown
后一篇: 安装 PHP 5.3 时出现 configure: error: Cannot find libmysqlclient under /usr.


添加评论

昵称:


验证码