6

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

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

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

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

如果我删除了一些相反的东西,它会识别出内容长度更短,并在最后开始删除一些东西。

这发生在两次全新安装中,我曾尝试用谷歌搜索遇到相同问题的人,但问题的分散性使其难以定义。

我已经尝试了所有可能的 Apache 配置来强制未缓存的结果,但都没有运气。

我发现强制它更新的唯一方法是重新安装共享文件夹

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

4

2 回答 2

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

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

于 2012-11-23T09:31:58.070 回答
0

那么肯定有一些缓存正在某处进行。

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

你最终会得到像这样的链接

<link type='text/css' rel='stylesheet' media='screen' href='stylesheet.css?1352889543' />

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

于 2012-11-22T15:47:10.623 回答