有没有办法禁用这个'功能'?
例如,如果向http://localhost/foo.html
发出了我已指定为“301”到根地址的请求,则对foo.html
的所有后续请求都会完全绕过Web服务器,而ffox 5将检查它是否为缓存,读取此网址先前为“301”并重定向,甚至没有检查更改。
如果我已经从301'停止foo.html
,我必须清除firefox的缓存,以便“修复”这种情况发生。
Chrome,IE和以前版本的Firefox不会这样做。
答案 0 :(得分:109)
在Firefox中,如果你有“web developer”工具栏插件。您可以点击停用 - >禁用缓存 - >每次检查新版本的页面。然后重新加载URL,它将刷新您的缓存。因此,您无需清除完整缓存。
从cptstubing06的评论中,以下内容可以帮助清除缓存:
about:config
以打开configuration settings。browser.cache
,然后按 Enter 过滤设置。browser.cache.check_doc_frequency
。3
更改为1
。OK
。Firefox现在应该重定向到新的301页面,不再从缓存中获取重定向的页面。
答案 1 :(得分:44)
301只是一个普通的可缓存响应代码。 http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.2说:
This response is cacheable unless indicated otherwise.
因此,如果您不希望它被缓存,您的服务器需要通过用于控制缓存行为的普通标头来指示。
答案 2 :(得分:24)
我刚遇到这个问题,对我来说这是两个问题。
此特定域名通过Cloudflare路由,因此我必须将其设置为开发模式。我认为Cloudflare正在缓存301重定向,因此它不必将请求发送到服务器。此步骤可能不适用于您。
然后,我只需通过工具 - >清除我的Firefox缓存(版本11)。选项,单击右上角的“高级”按钮,选择“网络”选项卡,然后单击“缓存的Web内容”部分下的“立即清除”。请注意我的缓存已设置为0,但我仍然需要单击“立即清除”按钮以使重定向停止缓存。
我有兴趣知道是否有其他人可以验证这一点。
答案 3 :(得分:9)
我找到了一个适用于Firefox 26的解决方案,在过时的重定向缓存超过一个月并重新启动之后。
将仅从缓存中删除该网站的所有缓存网页,图片和重定向。这使您可以清除开发网站的重定向,而无需清除其余的缓存。
作为旁注,我认为Firefox最多只能缓存重定向几天。将它们缓存超过一个月可能会使一个简单的错误成为一个大问题。
答案 4 :(得分:5)
一个快速解决方法是使用私人浏览器窗口。
答案 5 :(得分:5)
最近版本的Firefox内置的开发人员工具有一个解决方案。首先,在开启开发窗格时关闭缓存:
Advanced Settings
下,选中Disable Cache (when toolbox is open)
现在,只要您想强制刷新缓存页面,就可以在打开F12开发工具箱的情况下加载/刷新页面。 Firefox将绕过缓存并从服务器获取新数据。
我更喜欢这种方法,因为它不会改变浏览器对“正常”非调试浏览的行为方式,也不会有忘记将全局设置恢复为原始值的风险。
在Firefox 39中验证
答案 6 :(得分:3)
301表示永久移动。因此,我认为缓存响应是合理的。
您是否尝试过设置cache-control
和expires
标头?
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9
答案 7 :(得分:2)
在Firefox版本38.0中
Menu -> Edit -> Preferences -> Advanced -> Network -> Clear Now
为我工作。
答案 8 :(得分:1)
301表示永久移动并且可以缓存,因此我认为这是浏览器的“正确”行为。您应该使用303 See Other。