我已经设置了一个带文件服务器的简单响铃服务器
(ns scratch.basic-test (:use [ring.middleware.file :only [wrap-file]] [ring.middleware.file-info :only [wrap-file-info]]) (:require [ring.adapter.jetty :as jetty])) (defn naked-handler [request] {:status 200 :headers {"Content-Type" "text/html"} :body (str request}) (defonce server (run-jetty (-> #'naked-handler (wrap-file "resources/public") wrap-file-info) {:port 8890 :join? false}))
我在test.mp4
目录中有video.html
和resources/public
。
video.html
引用mp4文件:
...blah...
<video id="my_video_1" controls>
<source src="test.mp4" type='video/mp4'>
</video>
...blah...
当我在safari中打开http://server-ip-address:8890/video.html
时,firefox即可正常运行
然而,当我在ipad上打开它时,却没有...而是显示黑色无法播放的矩形。
当我将相同的文件放在apache服务器中并在ipad上打开video.html时,视频播放完美....
发生了什么事?
答案 0 :(得分:1)
我会在这里回复,因为评论部分太紧,不符合我的口味:)。
我认为在更改任何内容之前,有必要查看HTML标头。比较Apache给你的戒指。问题可能与描述here的问题有关,也可能与其他问题有关。如果您不知道如何查看标题this可能会有所帮助。
至于修改标题我认为如果有任何必须修改它将在环级别而不是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文件大小。
我猜,除非你从两台服务器发布标题,否则我无能为力。