Django 视频在Safari和iOS上不起作用

Django 视频在Safari和iOS上不起作用,django,html,video,safari,http-headers,Django,Html,Video,Safari,Http Headers,我面临的问题是,我的HTML5示例视频没有加载到OSX上的Safari 11中,但可以与Chrome和Firefox完美配合。此外,该视频一般在iOS上不起作用(Safari和Chrome都不起作用) 以下是HTML: <video id="VideoElement" width="200" height="160" muted controls src="/static/media/fitness/theraband1.mp4" type="video/mp4"></vid

我面临的问题是,我的HTML5示例视频没有加载到OSX上的Safari 11中,但可以与Chrome和Firefox完美配合。此外,该视频一般在iOS上不起作用(Safari和Chrome都不起作用)

以下是HTML:

<video id="VideoElement" width="200" height="160" muted controls src="/static/media/fitness/theraband1.mp4"  type="video/mp4"></video>
<video id="VideoElement" width="200" height="160" controls muted src="http://USER.pythonanywhere.com/static/video.mp4"  type="video/mp4"></video>
<video id="VideoElement" width="200" height="160" controls muted src="https://github.com/USER/mysite/blob/master/static/video.mp4?raw=true"  type="video/mp4"></video>

然而,我不认为html是个问题,因为我甚至不能 通过与文件的直接链接访问Safari上的视频。万一你 如果您想自己尝试,请点击以下链接:

该应用程序是在Python 3和Django 2中编程的。无法使用pythonanywhere页面或本地Django开发服务器加载视频


我已经搜索了Stack Overflow,但找不到解决方案(例如,问题主要集中在HTML和视频格式上,我认为它们在这里很好)。

我最终可以解决这个问题(尽管方式很不雅观)。我没有链接到pythonanywhere上的文件,而是使用github作为主机,它可以工作:

不起作用:

<video id="VideoElement" width="200" height="160" muted controls src="/static/media/fitness/theraband1.mp4"  type="video/mp4"></video>
<video id="VideoElement" width="200" height="160" controls muted src="http://USER.pythonanywhere.com/static/video.mp4"  type="video/mp4"></video>
<video id="VideoElement" width="200" height="160" controls muted src="https://github.com/USER/mysite/blob/master/static/video.mp4?raw=true"  type="video/mp4"></video>

有效:

<video id="VideoElement" width="200" height="160" muted controls src="/static/media/fitness/theraband1.mp4"  type="video/mp4"></video>
<video id="VideoElement" width="200" height="160" controls muted src="http://USER.pythonanywhere.com/static/video.mp4"  type="video/mp4"></video>
<video id="VideoElement" width="200" height="160" controls muted src="https://github.com/USER/mysite/blob/master/static/video.mp4?raw=true"  type="video/mp4"></video>


我使用完全相同的文件,甚至是我拉到Pythonywhere的相同github存储库。一个可能的答案是Pythonywhere不支持HTTP字节范围请求(?)。。。不管怎样,它现在可以工作了…

Django完全可以提供视频和其他媒体类型。 问题在于django开发服务器并不意味着是一个成熟的web服务器。您可能应该考虑使用Web服务器(如NGIX或Apache)服务站点。您不需要在其他地方托管静态内容

设置示例:

  • Gunicorn运行应用程序并在套接字上侦听,例如。
    /var/sockets/mysite.sock
  • 配置web服务器以服务于站点。
    参考:
  • 您还应该运行
    collectstatic
    ,并将Web服务器配置为从此位置加载静态内容。这不是强制性的,但建议您这样做,因为可以将web服务器配置为缓存此静态内容以获得更好的性能


    希望这有帮助

    其他站点的其他嵌入视频是否在Safari上工作?如果您不确定,可以从Safari浏览器访问此视频并查看视频是否播放?是的,其他嵌入式视频在Safari上运行良好,包括上面发布的演示视频。你能打开我在Safari上面发布的占位符视频吗?只是为了再次确认这个可怕的错误。Django 2 Python 3.6。我尝试了所有方法,但问题是Django不支持字节范围请求,所以它可以在Chrome、Firefox上工作,但不能在Safari或iOS上工作。与uWsgi的部署也没有完全发挥作用,我对核心开发人员在这方面的粗心大意感到不知所措。无论您是否可以使用Nginx或Apache提供静态服务。这一定有用!将整个项目迁移到go lang中,所有工作都是开箱即用的。10分钟而不是几个小时试图修复Django。我面临着同样的问题。有什么解决办法吗@devnull@codingdaddy你成功地修好了吗?我面对它:(OP提到这个问题存在于Pythonywhere的生产和本地开发中。没有任何地方说明在生产中使用了开发服务器。这并不能解决最初的问题,因为您需要能够让Django开发服务器向Safari提供视频,以便能够测试提供视频的应用程序在本地(或者您必须经历在开发中运行nginx的整个头痛…)。