在哪里应用的缓存 - Apache 或浏览器?



我正在运行一个安装了CentOS 5.8的VirtualBox服务器,为希望后端使用1366px 768px固定宽度布局而不是现有1024px 768pt的客户开发一个新的管理界面。

httpd server is 'stock' Apache/2.2.3 as supplied as part of CentOS 5.8
php is 'stock' PHP 5.3.3 as supplied as part of CentOS 5.8

大部分工作都是对css文件进行更改,以利用额外的宽度,因为这一切都与客户端的布局有关。

问题是某个地方的文件被缓存了,我没有看到我对css文件所做的更改。Shift F5和Ctrl F5在客户端浏览器上没有区别。

这让我疯了,花了太长时间才解决,所以我发帖寻求帮助。我已经尝试了许多关于.htaccess调整和向链接css文件添加参数的所谓"解决方案",但都无济于事

我觉得这是httpd的问题,但许多所谓的"专家"都坚持认为这是浏览器的问题。我已经在MS Exploder、Opera、Chrome和Opera Mobile Emulator中进行了测试,没有看到css立即发生任何变化。

我希望有人能提供帮助,因为这一定会让其他开发人员感到沮丧。

如何在VirtualBox CentOS环境和Firefox v17上禁用所有缓存?

我遇到了同样的问题。我在这里找到了解决方案:

http://www.danhart.co.uk/blog/vagrant-virtualbox-modified-files-not-updating-via-nginx-apache

问题是VirtualBox的共享文件夹不完全支持sendfile(),所以你必须在你的apache/nginx配置文件中关闭它:

apache: EnableSendfile off
nginx: sendfile off;

它对我有效

缓存可以发生在许多级别:服务器、浏览器或两者之间(代理、ISP、路由器等)。

您是否安装了服务器端缓存软件?Varnish,Pagespeed,或者类似的东西?

您可以通过在文件名中添加一个可变的URL查询字符串来中断缓存,例如加载mystyle.css?r=34234235而不仅仅是mystyle.css。更改数字将迫使它重新加载为没有缓存的新URL,无论缓存在哪里进行。

直接回答您的问题:在Firefox中,您可以通过打开"选项"窗口、"高级选项"、"网络"选项卡来明确清除缓存。这里有一个"清除缓存"按钮。如果是浏览器缓存问题,这应该可以为您解决问题。这里还有一个管理缓存大小的功能。将其设置为零以防止firefox缓存任何内容(但要准备好让它加载页面的速度慢得多)。

谢谢。

这不是路由器或ISP的问题,因为服务器只是托管在VirtualBox容器中,文档根目录指向已安装的共享文件夹。

我使用这种方法是因为我必须支持一些不同的网站,其中一些主机运行的是phpv5.2,而另一些主机则运行的是v5.3。这也意味着我可以很容易地检查与不推荐使用的函数有关的问题。

我尝试使用插件查询字符串作为样式表名称,但是"查看源代码"显示了新名称,但内容仍然是"旧"工作表。

这不是浏览器的问题,因为Chrome、IE和Firefox都显示了相同的问题,所以它绝对是Apache服务器。

没有安装服务器端软件,这是一个简单的"yum-install-httpd*",可从CentOS5.8 DVD下载。

我通过创建work-in-progress.php并在文件顶部添加以下内容来解决缓存css的问题:

<?php
header("Content-type: text/css; charset: UTF-8");
?>

然后,我将样式表作为<头部>使用.php扩展名。

<link rel='stylesheet' type='text/css' href='work-in-progress.php'>

它有点俗气,但至少它适用于css

我仍然需要解决Apache配置中要更改的参数,因为图像也在缓存中,除非每次修改背景图像时都更改文件名,否则我仍然会收到"旧"图像。

我尝试过在进行更改后重新启动服务httpd,但这似乎没有任何影响。

相关内容

最新更新