Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法通过资产管道在iOS中的LAN上播放MP4视频,但可以从WAN播放_Ios_Ruby On Rails_Video_Ruby On Rails 5_Asset Pipeline - Fatal编程技术网

无法通过资产管道在iOS中的LAN上播放MP4视频,但可以从WAN播放

无法通过资产管道在iOS中的LAN上播放MP4视频,但可以从WAN播放,ios,ruby-on-rails,video,ruby-on-rails-5,asset-pipeline,Ios,Ruby On Rails,Video,Ruby On Rails 5,Asset Pipeline,我正试图在我的网站上嵌入一个,并在对话框中显示它。我原以为有JavaScript问题,但我把问题缩小到这样一个事实:iPhone上的iOS Mobile Safari不会播放来自本地网络的mp4文件,即使是直接链接。该链接看起来像http://localhost:3000/assets/introduction-0cf920e06b4224f8f83f59d02f878b7d5733b09590a14147d1580cbfb5081f18.mp4除非我将本地主机更改为桌面服务器的IP。它将加载一

我正试图在我的网站上嵌入一个
,并在对话框中显示它。我原以为有JavaScript问题,但我把问题缩小到这样一个事实:iPhone上的iOS Mobile Safari不会播放来自本地网络的mp4文件,即使是直接链接。该链接看起来像
http://localhost:3000/assets/introduction-0cf920e06b4224f8f83f59d02f878b7d5733b09590a14147d1580cbfb5081f18.mp4
除非我将本地主机更改为桌面服务器的IP。它将加载一个与第一帧相同颜色的黑色屏幕,中间有两个破折号。p> 若我从staging加载MP4的热链接,那个么它就可以正常播放。它在桌面上的Chrome浏览器中也能很好地发挥作用

我还试着在iPadiOS9.3.5上玩,但它没能玩,但却显示了整个播放按钮,什么也没做

如果我将视频复制到
/public
文件夹,它将在iOS Safari上播放。它似乎只有在通过资产管道时才会失败,但只有在开发过程中才会失败(在暂存中是同一个文件)

如何在开发环境中在iPhone Safari上播放MP4视频

我将iPhone导入Fiddler4代理并重新加载页面。它连续两次提出请求:

GET /assets/introduction-0cf920e06b4224f8f83f59d02f878b7d5733b09590a14147d1580cbfb5081f18.mp4 HTTP/1.1
Host: 10.0.0.14:3000
Upgrade-Insecure-Requests: 1
Connection: keep-alive
Accept-Encoding: gzip, deflate
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us
Connection: keep-alive
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_3 like Mac OS X) AppleWebKit/603.3.8 (KHTML, like Gecko) Version/10.0 Mobile/14G60 Safari/602.1

HTTP/1.1 200 OK
Content-Type: video/mp4
Cache-Control: public, max-age=31536000
ETag: "0cf920e06b4224f8f83f59d02f878b7d5733b09590a14147d1580cbfb5081f18"
X-Request-Id: b97a488d-7141-434f-813d-af4848162a70
X-Runtime: 0.058637
Content-Length: 27555596


iOS 10.3.3、iPhone 5、Windows 8.1、Rails 5,我也遇到了这个问题。经过一些测试,我意识到这也发生在生产中——这让我得出了以下答案:


TL;DR-不要使用资产管道来提供视频,如果可能的话,将其完全放在Rails服务器环境之外。

我也遇到了这个问题。经过一些测试,我意识到这也发生在生产中——这让我得出了以下答案:

TL;DR-不要使用资产管道来提供视频,如果可能,将其完全放在Rails服务器环境之外

GET /assets/introduction-0cf920e06b4224f8f83f59d02f878b7d5733b09590a14147d1580cbfb5081f18.mp4 HTTP/1.1
Host: 10.0.0.14:3000
Range: bytes=0-1
X-Playback-Session-Id: A0C3C96E-6F17-47B1-A509-521B3A61D481
Accept-Encoding: identity
Accept: */*
Accept-Language: en-us
Connection: keep-alive
Connection: keep-alive
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_3 like Mac OS X) AppleWebKit/603.3.8 (KHTML, like Gecko) Version/10.0 Mobile/14G60 Safari/602.1

HTTP/1.1 200 OK
Content-Type: video/mp4
Cache-Control: public, max-age=31536000
ETag: "0cf920e06b4224f8f83f59d02f878b7d5733b09590a14147d1580cbfb5081f18"
X-Request-Id: 273865e7-b389-4473-b565-75b2d7ac6559
X-Runtime: 0.038530
Content-Length: 27555596