Firefox - 无法刷新缓存的视频文件

时间:2016-07-27 23:13:55

标签: html5 firefox video firefox-developer-tools

编辑澄清基本问题。

我正在尝试调试包含一个图像和一个视频的简单HTML5网页。一切都很好。视频播放正确。但是,当我尝试刷新页面时,除了视频文件之外,所有内容都会被下载。我正在使用Firefox开发人员工具,但我无法理解发生了什么。

在网络标签上,我看到正在下载的.html文件,然后是image.jpg文件。但我从未看到下载video.mp4文件。视频播放正常,但它不是服务器上的当前版本。它似乎是一个已缓存的先前版本。

我很困惑为什么会这样。在开发人员工具中禁用缓存。我正在使用Ctrl+F5刷新页面。这就好像视频是从一些我不知道的秘密本地缓存提供的。我正在使用Firefox 47.0.1。当我用Firebug测试时也会发生同样的事情。

编辑。我现在在Chrome中尝试过开发者工具,它完全一样。我第一次访问该页面时,可以看到video.mp4正在下载。在后续重新加载时,我会看到.html.jpg文件正常,但 video.mp4文件。它必须在某处缓存,因为它会播放。我在Chrome开发工具中禁用了缓存。我明确清除了缓存并尝试了一个隐身窗口。除了第一次,我从未看到任何有关视频文件被下载的迹象。

我必须遗漏一些明显的东西。其他人可以重现这个吗?

这是我的HTML。

<! DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
  </head>
  <body>
    <p>Test page.</p>
    <img src="media/image.jpg">
    <video src="media/video.mp4" controls="">
      Display this if the browser can't play video.
    </video>
  </body>

从对问题答案的评论中移出的信息:
1
谢谢@nakji。清除缓存和私密浏览完全没有区别。但关闭浏览器确实如此。清除缓存后我重新打开了浏览器。在我第一次访问该页面时,我可以看到video.mp4的两个GET,其响应为206(部分内容)。但在那之后它回到了原来的问题。我将下载Chrome并尝试

2
@ManoDestro。我尽一切努力强制下载video.mp4。但它没有发生。我用 Ctrl + F5 重新加载页面。我在Dev Tools设置中关闭了缓存。我手动清除了缓存。我尝试了一个私人浏览窗口。我想不出别的什么。这就像视频是从一个不遵守正常缓存规则的秘密缓存提供的。我已经使用了多个工具来确认文件没有下线 - FF Dev Tools,Firebug和现在的Wireshark。有人可以用类似的设置进行测试吗?

1 个答案:

答案 0 :(得分:3)

经过一整天的谷歌搜索,我现在可以回答我自己的问题了。事实证明,Firefox有一个特殊的媒体缓存&#34;对于HTML5视频和音频内容,它与每个人都知道的常规缓存完全分开。它针对与媒体内容相关的高带宽和大文件进行了优化。其中一位开发人员,Robert O&#39; Callahan解释了这一切here

愚蠢的是,这个媒体缓存似乎无法在您期望的时候被清除。事实上它似乎永远不会被清除。永远。结果是,当您真正希望它从服务器再次获取媒体文件时,Firefox会继续从缓存中提供陈旧内容。这是我最初尝试调试的问题。在我更改服务器上的文件后,Firefox继续播放错误的视频。我无法下载新版本。

通常用来强制重新加载页面的所有内容都不适用于媒体缓存。以下内容无效。

  • 用户选择&#39;清除最近的历史记录&#39;并删除所有内容。
  • 用户在开发者工具中关闭缓存。
  • 用户使用Ctrl + F5强制重新加载页面。

唯一可行的方法是关闭浏览器并重新开始。我仍然在这个复杂的地区寻找方法。如果有人对此有任何了解,请发表评论。

我将此报告为Firefox here的错误。