2010-12-27 4 views
7

Ich habe eine Django-App, die eine Webseite mit einem HTML5-Element bedient. Es gibt ein seltsames "Feature", das das Videoelement nichtsuchbar macht: video.seekable gibt ein timeRanges Objekt mit length=0 zurück, während es length=1 sein sollte.HTML5-Videoelement bei Verwendung des Django-Entwicklungsservers nicht suchbar

Das bedeutet, ich kann das Video nicht bearbeiten. JavaScript kann auch nichts machen.

Die Sache ist, wenn ich die problematische Webseite statisch - kein Django, einfach nur HTML/JS/CSS - auf meine Website zum Testen hochladen, funktioniert es gut - length=1.

Allerdings, wenn ich versuche, die gleiche statische Seite auf meinem Django-dev-Server zu dienen, gibt es immer noch das gleiche Problem.

I am using Django's static serving for dev/debug purposes - Haben Sie eine Idee, was das verursacht, oder wie kann ich es beheben?

Danke.

Antwort

11

Django Dev-Server wahrscheinlich, nicht HTTP Bytebereichen unterstützt, ist das, was in der Regel zu implementieren Browser verwenden suchen .

Jeder Produktions-Webserver, z.B. Apache, Lighttpd oder Nginx sollten diese gut unterstützen. Wenn Sie Ihre gesamte Django-App auf einem dieser Server ausführen können, sollte das Problem verschwinden.

Eine Problemumgehung wäre, das Video einfach von einem Server wie diesem zu bedienen: Setze eines davon, um das Videoverzeichnis auf deinem Rechner an einem anderen Port als Djangos dev Server zu betreiben, und dann in deiner Entwicklungsumgebung die URL <video src=, um auf den neuen Webserver zu verweisen oder eine spezielle Ansicht für Videos zu schreiben, die auf den neuen Webserver umgeleitet werden.

+2

Das hat den Trick gemacht. Vielen Dank! Für alle, die es wissen wollen, habe ich das ursprüngliche Beispiel für statische Beispiele in Djangos Dokumenten bearbeitet, in ** urls.py ** zu: 'urlpatterns + = patterns ('django.views.generic.simple' (r '^ static/(? P . *) $ ',' Redirect_to ', {' URL ': http: // my_url /% (Pfad) s'}), ' –

0

Ich bin selbst nicht in so etwas gelaufen, aber ich kann mir denken, dass der Django-Entwicklungsserver kein Video "einfach so" streamen kann. Möglicherweise müssen Sie ETAG-Middleware verwenden, um dies zu beheben.

Nehmen Blick auf diese Frage: How to stream an HttpResponse with Django