我几乎不知道如何开始描述这个问题 - 我完全感到困惑。基本上,我有一个定制的F4V视频播放器,通过HTTP请求获取F4V,然后使用一些标准AS3播放视频。
现在,我在相同的SliceHost切片上有三个站点,运行相同的操作系统,相同的PHP版本,构建在同一平台上,具有相同的Apache设置,一切。在其中一个网站(只是其中一个)上,视频在首次加载播放器时不播放,而是必须刷新页面才能播放视频,实质上是从缓存中播放。否则,它等待,好像它从未下载足够的文件来开始播放。此外,在同一个网站上,在一个且仅一个视频中,音频播放但不播放视频,直到大约第三或第四次播放。之后,视频将与音频一起播放。
我已经将经过验证的工作swf文件从功能站点移动到损坏的站点并看到相同的结果。我已经将破碎的F4V文件上传到功能网站,它们工作正常。我确保加载播放器的HTML和Javascript是相同的。
有什么我忘记检查可能会导致这个问题吗?有没有更多浏览器或flash缓存知识的人?
其他信息:
我添加了一个nocache指令,尽管你可能已经预料到,这导致它在刷新时也开始失败。我一直在使用HTTPFox来查看请求,尽管没有任何结果。我唯一可以收集的是,它从缓存中获得时似乎正在播放,但是当从网站请求时却没有。但是,即使发出请求,它也可以在其他站点上正确播放。
在请求正常工作的站点上,HTTPFox显示请求中返回的正确数据大小(几MB)。在违规网站上,它显示F4V请求返回的数据不到1K。
答案 0 :(得分:0)
编辑,因为这是目前最好的答案。
在这种情况下,问题是GZIP被应用于一个单独的站点。其他要寻找的东西是:
要识别诸如此类的问题,您可以使用Fiddler之类的工具(但是还有其他特别适用于非MS堆栈,例如wireshark)。使用此类工具可以让您详细比较和对比响应和请求,甚至可以更改然后重播它们以缩小问题范围。
答案 1 :(得分:0)
这是正确的答案。我花了一点时间来更仔细地比较HTTP请求并发现问题。由于Apache配置错误,似乎有问题的服务器试图gzip除图像之外的所有内容。将配置更改为仅gzip几个关键文件类型解决了问题。谢谢你的帮助Lex。