1

我正在尝试使用PuPHPet设置开发服务器,它本质上只是预装了 PHP、Nginx 和其他一些东西的 Vagrant 的预制构建。

我的 .css 文件有一个奇怪的缓存问题。

当我直接在我的开发 URL 访问我的 .css 文件时,它会显示文件的一部分。这是我开始编辑之前的文件。您会从我的屏幕截图中注意到,我已删除文件的全部内容并将其替换为数字“12345”。当我在浏览器中刷新 .css 文件时,我看到了文件的前 5 个字符。添加一个额外的字符会从旧文件中恢复一个额外的字符。

重启 nginx 不会清除缓存。Ctrl+F5 不清除缓存。从以下位置检查文件内容vagrant ssh

[08:11 PM]-[vagrant@precise64]-[/var/www/public/css]-[hg default] B
B$ cat main.css
12345

我可以看到文件是最新的。它部分显示的文件根本不存在。我最好的猜测是它正在读取磁盘上文件的长度,然后从内存中提取实际内容。

内置的 PHP 5.4 开发服务器没有这个问题,所以我很确定 Nginx 是罪魁祸首。

我怎样才能让 Nginx 以理智的方式行事?

4

1 回答 1

2

很可能这是系统调用中已知的 VirtualBox 错误。sendfile

尝试在 nginx 配置中禁用 sendfile:

sendfile off;

(在阿帕奇EnableSendfile off

于 2014-02-19T14:49:59.890 回答