我在 CentOS VirtualBox 中运行了一个 CakePHP 项目。该网站使用 Apache 2.2.15 提供服务。
文档根文件夹中有 JS 文件。Apache 似乎为这些文件提供服务。
但是当我编辑 JS 文件后,Apache 会提供旧文件。它会修改旧文件的大小以匹配新文件的大小,并提供修改后的旧文件:
- 如果新文件小于旧文件,则剪切旧文件并提供结果;
- 如果新文件大于旧文件,它会将
�
符号附加到旧文件并提供结果。
重新启动 Apache 不能解决问题。
我发现让 Apache 提供当前文件的唯一方法是将文件移动到另一个位置。然后 CakePHP 将显示一个漂亮的 404 页面。然后我将文件移回,Apache 将显示文件的当前状态。
但是 i2.2.15t 会将文件冻结在该状态下,再次修改文件后,我将不得不再次重复该技巧。
Apache 日志是干净的,访问日志文件显示以下内容:
172.28.128.1 - - [2014 年 7 月 12 日:07:42:13 -0400] “GET /assets/js/compiled/editable_group.js HTTP/1.1” 200 903
这个问题的原因是什么?我该如何解决?
PS 我很乐意提供任何详细信息、日志、配置等。只需告诉我您想看到什么。
答案1
好的,在这个问题中找到了答案:
CentOS 5.9 VM 上的 Apache 错误地提供修改后的文件
解决方案是将其包含EnableSendfile off
在<directory>
Apache 配置的部分中。