我正在使用 apache 和带有视频的 chromecast,据我所知,本地视频只有在获得 200 响应而不是 206 响应时才会在 chromecast 上播放。
是否可以配置 apache(或建议另一个 Web 服务器)来响应
range: bytes 0-
和
200, OK
这似乎是 chromecast 所期望的,而不是部分内容
206, Partial Content
编辑
这不是重复的有没有办法在 Apache 中禁用字节范围请求?。我想要支持部分内容,特殊情况是如果请求所有文件,则响应是 200 而不是 206。
禁用响应的结果是,根据我的特殊情况,会给出 200 个请求,但会禁用从存储内容中进行断点下载或流式传输的能力。
答案1
在使用 nodejs 进行一些工作之后
代码项目:node-js 中的 HTTP 部分内容。这让我可以检查响应标头和结果,chromecast 不关心 200/206,但关心 CORS 标头(谷歌:chromecast)。
一旦我添加了
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Expose-Headers "Content-Type"
Header set Access-Control-Expose-Headers "Accept-Encoding"
Header set Access-Control-Expose-Headers "Range"
对我<Directory>
来说,chromecast 开始与标准 apache 一起工作。
Apache 代码审查
我还审查了 Apache 代码,并使用拼写错误的 Header(Rnge
而不是Range
)进行了进一步检查。Apache 代码硬连线为返回 206,并且我找不到任何机制来覆盖它。