链接(CSS)和脚本不会使用共享文件夹文档根更新VM上的内容

时间:2012-11-22 15:34:23

标签: php apache virtual-machine

我已在CentOS6虚拟机上彻底安装了Apache和PHP,我还创建了一个共享文件夹并将其用作我的文档根目录。

一切都很完美,我可以访问网站,做我想做的所有事情,我可以在工作站上编辑PHP文件,在浏览器中进行测试时,它们会立即更新。

然而,在编辑CSS和JavaScript时,文件是"链接"进入网站,我遇到了一个奇怪的问题,当他们不对页面进行未缓存的重新加载时,他们不会更新内容,但他们会更新内容长度。

因此,如果我在脚本中添加了任何内容,它将为我提供相同的内容,内容长度更高,并尝试通过添加未知字符标记(方形问号标记)来纠正此问题。

如果我删除了相反的内容,它会识别出内容长度较短并且最后会开始删除内容。

这种情况发生在两次干净的安装上,而且我已经尝试使用Google来解决有同样问题的人,但问题的分散性很难定义。

我已经尝试了所有可能的Apache配置,以便在没有运气的情况下强制执行未缓存的结果。

我发现强迫它更新的唯一事情是重新安装共享文件夹

如果您需要更多信息,我很乐意提供!

2 个答案:

答案 0 :(得分:1)

虽然我开始怀疑问题不在缓存中,但由于我对virtualbox的工作量不大,所以其他任何问题都无法实现。

然而,我的一位同事指出vboxsf“不太好”(不是那么说)。因此,当我有其他东西继续进行时,搜索更容易定义和预定!

https://forums.virtualbox.org/viewtopic.php?f=3&t=1940&p=6680&hilit=shared+folder+apache#p6680

导致了这个:

http://httpd.apache.org/docs/2.0/faq/error.html#error.sendfile

禁用它们为我解决了这个问题!

答案 1 :(得分:0)

嗯,某些地方肯定会有一些缓存。

我处理此问题的策略是将.css /.js文件的filemtime()附加到链接的末尾。

你最终会得到像

这样的链接
<link type='text/css' rel='stylesheet' media='screen' href='stylesheet.css?1352889543' />

这样,服务器和浏览器都不可能缓存已经修改过的文件。