使用Django开发服务器时HTML5视频元素不可搜索

Ory*_*and 9 javascript python django html5 html5-video

我有一个Django应用程序服务于一个HTML5元素的网页.有一个奇怪的"功能",将视频元素转为不可搜索:video.seekable返回一个timeRanges对象length=0,而它应该是length=1.

这意味着我无法编辑视频.JavaScript也无法做任何事情.

问题是,当我上传有问题的网页时,静态 - 没有Django,只是简单的HTML/JS/CSS - 到我的网站进行测试,它运行正常 - length=1.

但是,如果我尝试在我的Django dev服务器上提供相同的静态页面仍然会出现同样的问题.

我正在使用Django的静态服务进行开发/调试 - 你知道是什么导致这个,或者我该如何解决它?

谢谢.

ori*_*rip 12

Django的开发服务器可能不支持HTTP字节范围,这是浏览器通常用来实现搜索的.

任何生产Web服务器,例如Apache,lighttpd或nginx,都应该支持这些.如果您可以运行整个Django应用程序中的一个服务器问题应该消失.

解决方法是从服务器那样提供视频:将其中一个设置为静态服务于机器上的视频目录,而不是Django的开发服务器,然后在开发环境中将<video src=URL 更改为指向到新的Web服务器,或为重定向到新Web服务器的视频编写特殊视图.

  • 这就是诀窍.非常感谢你!对于任何想要了解的人,我在Django的文档中编辑了原始的静态服务示例,在**urls.py**中:`urlpatterns + = patterns('django.views.generic.simple'(r'^ static /( ?P <path>.*)$','redirect_to',{'url':http:// my_url /%(path)s'}),` (2认同)

Ani*_*yal 5

我遇到了同样的问题,并找到了一个简单的方法。您可能想尝试这个:

$ pip install static-ranges
$ pip install dj_static
Run Code Online (Sandbox Code Playgroud)

在你的 wsgi.py 文件中:

...
from static_ranges import Ranges
from dj_static import Cling, MediaCling
...
application = Ranges(Cling(MediaCling(get_wsgi_application())))
Run Code Online (Sandbox Code Playgroud)

欲了解更多信息, 请点击此处