3

我已经建立了一个带有文件服务器的简单环服务器

(ns 从头开始​​。基本测试
  (:use [ring.middleware.file :only [wrap-file]]
        [ring.middleware.file-info :only [wrap-file-info]])
  (:require [ring.adapter.jetty :as jetty]))

(定义裸处理程序 [请求]
  {:状态 200
   :headers {"Content-Type" "text/html"}
   :body (str 请求})

(防御服务器
  (run-jetty (-> #'naked-handler
                 (包装文件“资源/公共”)
                 包装文件信息)               
             {:端口 8890:加入?错误的}))

我有test.mp4video.htmlresources/public目录中。


video.html引用 mp4 文件:

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

http://server-ip-address:8890/video.html当我在 safari、firefox 中打开时,它工作正常

但是,当我在 ipad 上打开它时,它没有.. 而是显示一个黑色的不能播放矩形。


当我将相同的文件放入 apache 服务器并在 ipad 上打开 video.html 时,视频播放完美....

到底是怎么回事?

4

1 回答 1

1

我会在这里回复,因为评论部分对我来说太紧了:)。

我认为在更改任何内容之前先看一下 HTML 标头是有意义的。将 Apache 提供给您的内容与 ring 进行比较。该问题可能与此处描述的问题有关,也可能与其他问题有关。如果您不知道如何查看标题,可能会有所帮助。

至于修改标题,我认为如果需要修改任何内容,它将在环级别而不是 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 回答