我有一个运行 apache 的 debian 网络服务器,我经常使用 XP 虚拟机上的 IE 8(通过 LAN)从该服务器下载可执行文件。然而,我意识到在某个时候我一直在重复运行同一个版本(并且想知道为什么我的更改没有显示)。
IE 中的A Ctrl+F5可以让我下载新版本(尽管页面总是用简单的 进行更新F5)。
这让我怀疑缓存正在 Windows/IE 中发生,但我不确定。
无论这种情况发生在哪里,有没有简单的方法可以在服务器上防止这种情况发生?最终,我们希望向整个公司提供该软件,并且我们希望避免每次有更新版本时都要告诉每个人做Ctrl+ 。F5
答案1
如果你认为 Apache 正在缓存该文件,你可以使用以下命令将其关闭.httaccess 指令:
<FilesMatch ".(html|htm|js|css)$">
FileETag None
<ifModule mod_headers.c>
Header unset ETag
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
</ifModule>
</FilesMatch>
此指令应告诉 IE 每次访问该网站时下载该页面。
或者,您可以告诉 IE 8 永远不要缓存网站 - 转到:工具、Internet 选项、常规选项卡、临时 Internet 选项。
请注意,此设置可能会影响您的 Web 服务器或客户端的性能。根据您的描述,这可能不是问题。
答案2
您可以将网页设置为不缓存 - 这样浏览器将始终获取最新文件。在页面的 HTML 标头中设置此项:
<meta http-equiv="Cache-Control" content="no-store"/>
您还可以设置 Apache 中缓存控制标头发送的内容 - 例如,您可能需要为 .exe 文件设置它,而不仅仅是 html 页面。以下是一些相关文档:http://www.askapache.com/htaccess/apache-speed-cache-control.html
另一个选项是使用“缓存清除 URL”,尽管这听起来不适用于您当前的设置。不过需要注意的是:http://www.adopsinsider.com/ad-ops-basics/what-is-a-cache-buster-and-how-does-it-work/