0

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

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 上禁用所有缓存?

4

3 回答 3

2

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

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;

它对我有用

于 2014-10-27T08:32:50.990 回答
0

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

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

您可以通过将可变 URL 查询字符串添加到文件名来中断缓存 - 例如 loadmystyle.css?r=34234235而不是mystyle.css. 更改数字将导致强制它重新加载为没有缓存的新 URL,无论缓存在哪里完成。

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

于 2012-11-28T14:55:58.393 回答
0

谢谢。

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

我正在使用这种方法,因为我必须支持几个不同的网站,并且一些主机正在运行 php v5.2,而另一些则在 v5.3 上。这也意味着我可以轻松检查有关已弃用功能的问题。

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

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

没有安装服务器端软件,它是 CentOS 5.8 DVD 中的简单“yum install httpd*”。

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

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

然后,我使用 .php 扩展名将样式表加载为 <head> 中的最后一项。

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

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

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

我已经尝试在进行更改后只进行服务 httpd restart ,但这似乎没有任何影响。

于 2012-11-30T01:18:46.683 回答