Mar*_*ton 9 javascript apache virtualbox centos7
正如您将在图像中看到的那样,有许多红点显然都标识为\ u0
文件内容或编辑器没有区别.
正在编译或未编译的JS文件没有区别,事实上,由于空格和新行,更多的红点出现在非缩小版本中,甚至加载空白文件,然后添加像console.log('abc')这样简单的东西将仅产生所有红点;
添加内容
这些不可见和不可选择的字符在文件末尾显示的次数与我在脚本的任何其他部分中键入的任何其他字符的数量相同.
不可见字符不在磁盘上的实际文件本身中,仅在Web服务器提供的字符中.
删除内容
如果我启动VM然后从JS脚本中的任何位置删除字符,那么相同数量的字符将从文件的webresponse请求中的内容的END消失.
未经修改的使用
当我第一次启动VM并在浏览器中访问网站时,只要文件永远不会以任何方式被修改,就不会有多个请求出错.
结论
如果我在VM运行时以任何方式修改文件,结果就好像服务器以某种方式保存了服务器首次启动或首次提供内容时文件字节大小的快照.然后在服务器运行时对文件内容进行更改时,如果内容变小则切断内容,或者如果更大,则填充\ u0,就像填充文件一样.
可以清除它不是永久性的错误
如果我在使文件损坏后重新启动VM并使用先前导致错误的修改刷新js文件的请求,则错误消失并且我的新更改很好.
我还可以撤消损坏响应的最后更改,并继续正常操作.
这个问题才刚刚开始发生,因为自11月18日开始或者需要花费几天的时间而且我已经运行了一个多月没有问题的设置,我记得最近唯一改变的是上周的一些Windows更新?
我在Windows 10上运行Virtualbox VM Centos 7,Apache 2.4.6 + PHP 7.1.12,并使用VBox Guest Additions共享文件夹配置将源代码目录安装到VM.
看起来这个问题与VM有关,它与资产有关,如果文件在加载后发生了变化,则会出现某种形式的填充和剔除.
重新启动httpd服务没有任何影响,只有在每次文件修改后重新启动VM才能解决问题.
有没有其他人遇到这个问题或能够重现它?
VM设置(复制)
以下是我一直在构建的说明,因为如果您想尝试重现问题,我将学习如何创建和运行本地开发环境:
https://docs.google.com/document/d/11cBF75hfcehB3np4nlLhc1EqIOKVchKIuQJyrvn8ztk
更新1 - 26/11/17
我试过从头开始重建一个新的VM,仍然是同样的问题.
我注意到它也发生在CSS文件中,作为测试,我更改了以下代码:
.flexData.tools .settings:hover {
color: #0a0a0a;
}
/*# sourceMappingURL=flexData.css.map */
Run Code Online (Sandbox Code Playgroud)
添加一个名为test的类:
.flexData.tools .settings:hover {
color: #0a0a0a;
}
.test {
color:blue;
}
/*# sourceMappingURL=flexData.css.map */
Run Code Online (Sandbox Code Playgroud)
结果在服务器服务的文件末尾看起来像这样:
.flexData.tools .settings:hover {
color: #0a0a0a;
}
/*# sourceMappingURL=flexData.css.map */
?????????????????????????
Run Code Online (Sandbox Code Playgroud)
注意在评论之前测试类是如何丢失的,并且在评论之后出现了奇怪的字符.
然后我重新启动虚拟机,然后在我的浏览器中按下F5(刷新),字符消失,我的测试类出现:
.flexData.tools .settings:hover {
color: #0a0a0a; }
.test {
color:blue;
}
/*# sourceMappingURL=flexData.css.map */
Run Code Online (Sandbox Code Playgroud)
我检查了HTML源代码响应,它没有对PHP的HTML输出执行此操作.
更新2 - 26/11/17
我安装了XAMP并测试了上述所有问题...没有任何文件修改导致错误,因此这确认了VM中的VM或httpd服务存在某种文件缓存问题.
Rad*_*anu 10
我有同样的问题,它是由VM造成的.
对于位置/块中的NGINX,添加sendfile off设置.
location / {
...
sendfile off;
}
Run Code Online (Sandbox Code Playgroud)
对于Apache,在httpd.conf中查找EnableSendfile并将其设置为off:
EnableSendfile off
Run Code Online (Sandbox Code Playgroud)
必须重新启动服务才能使更改生效,需要在Web浏览器中进行硬刷新(CTRL + 5)才能看到更改生效.
EnableMMAP和EnableSendfile:在支持它的系统上,内存映射或sendfile系统调用可用于传递文件.这通常可以提高服务器性能,但在从网络安装的文件系统提供服务时必须关闭,否则系统会对这些功能的支持造成破坏.
归档时间: |
|
查看次数: |
2165 次 |
最近记录: |