我已经设置了一个带有文件服务器的简单环形服务器
(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}))
I have test.mp4
and video.html
in the resources/public
directory.
video.html
references the mp4 file:
...blah...
<video id="my_video_1" controls>
<source src="test.mp4" type='video/mp4'>
</video>
...blah...
<小时/>
当我在 safari、firefox 和 ie 中打开 http://server-ip-address:8890/video.html
时,它工作正常
但是,当我在 ipad 上打开它时,它并没有..而是显示黑色的无法播放矩形。
<小时/>当我将相同的文件放入 apache 服务器并在 ipad 上打开 video.html 时,视频播放完美......
这是怎么回事?
最佳答案
我会在这里回复,因为评论部分太紧凑,不符合我的口味:)。
我认为在更改任何内容之前,先查看一下 HTML header 是有意义的。将 Apache 为您提供的功能与 Ring 进行比较。该问题可能与描述的问题相关 here或者也许是别的东西。如果您不知道如何查看标题this可能有帮助。
至于修改 header ,我认为如果需要修改任何内容,它将在环级别而不是 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 文件大小。
我想除非您从两个服务器发布 header ,否则我无能为力。
关于clojure - 如何使用jetty/ring向ipad提供视频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12336643/