3

ファイルサーバーでシンプルなリングサーバーをセットアップしました

(ns Scratch.basic-test
  (:use [ring.middleware.file :only [wrap-file]]
        [ring.middleware.file-info :only [wrap-file-info]])
  (:require [ring.adapter.jetty :桟橋として]))

(defn Naked-handler [リクエスト]
  {:ステータス 200
   :headers {"Content-Type" "text/html"}
   :body (文字列リクエスト})

(防御サーバー
  (run-jetty (-> #'naked-handler
                 (ラップファイル「リソース/パブリック」)
                 ラップファイル情報)               
             {:ポート 8890 :参加しますか? 間違い}))

ディレクトリにtest.mp4andvideo.htmlがありresources/publicます。


video.htmlmp4 ファイルを参照します。

  ...blah...
  <video id="my_video_1" controls>
     <source src="test.mp4" type='video/mp4'>
   </video>
  ...blah...

http://server-ip-address:8890/video.htmlSafari、Firefoxで開くと、つまり正常に動作します

しかし、ipad で開くと、再生できません。代わりに、再生できない黒い四角形が表示されます。


同じファイルをApacheサーバーに入れ、iPadでvideo.htmlを開くと、ビデオが完全に再生されます....

何が起こっている?

4

1 に答える 1

1

コメントセクションが私の好みにはきつすぎるので、ここに返信します:)。

何かを変更する前に、HTMLヘッダーを確認するのは理にかなっていると思います。Apacheが提供するものをリングと比較してください。問題がここで説明されている問題に関連している可能性があります。または、別の問題である可能性があります。ヘッダーの表示方法がわからない場合は、これが役立つ場合があります。

ヘッダーの変更に関しては、何かを変更する必要がある場合は、Jettyではなくリングレベルになると思います。

ここでアプリケーションを実行しました。ヘッダーは次のとおりです。

Name    Value
Date    Wed, 12 Sep 2012 05:26:20 GMT
Content-Length  36320472
Last-Modified   Sat, 12 May 2012 21:04:47 +0000
Server  Jetty(7.6.1.v20120215)
Content-Type    video/mp4;charset=UTF-8

Chromeで再生されました。申し訳ありませんが、チェックするiPadがありません。コンテンツの長さは正しく、元のmp4ファイルサイズと同じです。

両方のサーバーからヘッダーを投稿しない限り、他にできることは何もないと思います。

于 2012-09-10T13:22:51.373 に答える