带有vagrant的共享文件夹会导致附加不可见的字符

Max*_*Max 16 nfs invisible character vagrant

我有一些不可见的字符( )出现在javascript文档的末尾,导致FF或Chrome中出现"非法字符"错误.我看到了关于这个错误的不同主题,但没有什么对我有用,我在文档中看不到任何错误(显示不可见的字符,用十六进制编辑器打开它).这只会让我发疯.我使用Vagrant和nginx web服务器.该文档在服务器中也很清晰(vi +:set list).

另外,当我从我的Git存储库中找回一个清晰的文档时,一切正常(正常).但每次我想编辑它(比如在文档顶部创建一个新变量),我再次遇到此错误.

如果有人可以帮助我,谢谢你.

小智 19

如果您使用的是VirtualBox提供程序,则VirtualBox共享文件夹是默认的同步文件夹类型.这些同步文件夹使用VirtualBox共享文件夹系统来同步从guest虚拟机到主机的文件更改,反之亦然.

有一个与sendfile相关的VirtualBox错误,可能导致文件损坏或无法更新.您应该在可能正在运行的任何Web服务器中停用sendfile.

在Nginx中:

sendfile off;
Run Code Online (Sandbox Code Playgroud)

在Apache中:

EnableSendfile Off
Run Code Online (Sandbox Code Playgroud)

请参阅vagrant docs:http://docs.vagrantup.com/v2/synced-folders/virtualbox.html

  • 这个答案更多地与问题的真正起源有关.接受答案的解决方案只是逃避另一种并不总是可以访问的共享机制(就像我的情况一样).谢谢! (2认同)

Gui*_*ini 7

您似乎正在使用Vagrant ..请查看您的_Vagrantfile并检查文件在VM文件系统上的写入方式.

cat ~/.vagrant.d/boxes/[YOUR VM NAME]/include/_Vagrantfile
Run Code Online (Sandbox Code Playgroud)

也许您正在config.vm.synced_folder尝试使用NFS:

config.vm.synced_folder "/home/myuser/shared", ".", :nfs => true 
Run Code Online (Sandbox Code Playgroud)