2010-12-27 10 views
7

私はDjangoアプリケーションでHTML5要素のWebページを提供しています。ビデオ要素をシーク不可能にする奇妙な「機能」があります。video.seekableは、length=0timeRangesオブジェクトを返しますが、length=1である必要があります。Django開発サーバーを使用している場合、HTML5ビデオ要素がシーク不可能

これは、ビデオを編集できないことを意味します。 JavaScriptは何もできません。

私は問題のあるウェブページを静的にアップロードすると、Django、普通のHTML/JS/CSSをテスト用に私のウェブサイトにアップロードしても問題ありません - length=1

しかし、同じ静的ページを私のDjango開発サーバーに提供しようとすると、同じ問題が発生します。

I am using Django's static serving for dev/debug purposes - 何が原因なのか、どうすればいいですか?

ありがとうございました。

答えて

11

Djangoのdevのサーバーは、おそらく通常求めて実装するために使用するブラウザ何である、HTTPのバイト範囲をサポートしていません。 。

任意のプロダクションWebサーバー。 Apache、lighttpd、またはnginxは、これらの問題をサポートする必要があります。あなたがDjangoアプリケーション全体をこれらのサーバの1つで走らせることができれば、問題は解決しなくてはなりません。

このようなサーバーからビデオを配信するのは、Djangoのdevサーバーとは別のポートの静的にビデオディレクトリにサービスを提供するように設定してから、開発環境を変更する<video src= URLを使用して新しいWebサーバーを指定するか、新しいWebサーバーにリダイレクトするビデオの特別なビューを作成します。

+2

それはトリックでした。どうもありがとうございました!知りたい人のために、** urls.py **のDjangoのドキュメントのオリジナルの静的な提供例を編集しました: 'urlpatterns + = patterns( 'django.views.generic.simple'(r '^ static /() * '$'、 'redirect_to'、{'url':http:// my_url /%(path)s '})、 ' –

0

私はそれ自身のようなものに遭遇していませんでしたが、Django開発サーバーは "それと同じように"ビデオをストリーミングできません。これを解決するには、ETAGミドルウェアを使用する必要があります。

この質問を見てみましょう:How to stream an HttpResponse with Django

0

はまた、それがeasylyフリーズすることがあり、現在のように、組み込みdevのサーバーはシングルスレッドであることに注意。

同時テストサーバー:https://github.com/jaylett/django_concurrent_test_serverは(PRODには使えません)...ストリーミング/アップロードのためのより良いです

関連する問題