Ruby on rails Rails ActiveStorage音频内容范围
它一开始只是简单地使用ActiveStorage,只需以mp3格式存储一些音频文件(操作简单),并在网站上显示:Ruby on rails Rails ActiveStorage音频内容范围,ruby-on-rails,audio,rails-activestorage,http-content-range,Ruby On Rails,Audio,Rails Activestorage,Http Content Range,它一开始只是简单地使用ActiveStorage,只需以mp3格式存储一些音频文件(操作简单),并在网站上显示: 我在Chrome和Firefox上进行了测试,它可以正常工作,我可以播放音频,但在Safari上测试时,我遇到了一个问题,Safari认为服务器支持内容范围,因此Safari认为这是一个实时流,html5元素只能播放一次 所以我一直在互联网上搜索如何解决这个问题,我看到的答案是: Web服务器不支持它,但我使用的是Apache2.4,从2.2开始,它默认支持内容范围 狩猎之旅是红
我在Chrome和Firefox上进行了测试,它可以正常工作,我可以播放音频,但在Safari上测试时,我遇到了一个问题,Safari认为服务器支持内容范围,因此Safari认为这是一个实时流,html5元素只能播放一次
所以我一直在互联网上搜索如何解决这个问题,我看到的答案是:
- Web服务器不支持它,但我使用的是Apache2.4,从2.2开始,它默认支持内容范围
- 狩猎之旅是红色的对我没有帮助
- 您应该在Rails上实现它是的,这可能是一个解决方案,但我检查了ActiveStorage()的代码,但我必须更改它(我发现这个答案),这似乎很有帮助,但似乎应该更简单,不需要我更改ActiveStorage的实现
- 最后一种可能是,我不理解所有东西是如何交织在一起的,答案可能很简单,也很容易实现,这就是为什么互联网上没有信息,因为这是显而易见的,但我无法真正理解李>
感谢您的帮助。如果我们设置Rails发送文件路径,服务器似乎确实会处理请求。目前,Rails正在将文件作为原始数据发送(请参阅:For Rails5.2.0)。如果我们想让Rails将控制权交给服务器,我们应该使用
send_data
而不是使用send_file
,这一点在Rails的主分支中已经得到了解决,请参见:(),因此这只是等待的问题。我们将遵循github for ActiveStorage的讨论:我们可以看到提交并没有解决这个问题。还在努力。如果有人有更多的想法,让我知道,如果我发现一些新的东西,我会在这里张贴,以帮助同舟共济的人。目前,一个建议的解决方案是使用:file\u status,file\u headers,file\u body=Rack::file.new(nil).service(request,path)response.status=file\u status response.headers.merge!(文件\u标题)self.response\u body=文件\u body