Установить тип MIME для сервера - PullRequest
0 голосов
/ 04 апреля 2011

Я видел несколько тем об установке типов MIME.

Но никто не помог мне.

Он моя проблема:

У меня есть сайт Rails с кучей видео в форматах .ogv и .mov, расположенный в папке / public. Я ссылаюсь на эти файлы в видео теге HTML5.

Нет проблем с файлами .mov, они хорошо воспроизводятся в браузерах WebKit.

Проблема с .ogv.

Я думаю, это потому, что неправильный тип MIME для .ogv.

Вот что я получаю за .mov (правильно):

$ curl -I http:/mywebsite.com/video.mov

HTTP/1.1 200 OK
Date: Sun, 03 Apr 2011 19:57:41 GMT
ETag: "4d98744c-1bb-87563c0"
Last-Modified: Sun, 03 Apr 2011 13:21:16 GMT
Content-Type: video/quicktime
Content-Length: 443

А вот что я получаю за .ogv:

$ curl -I http://mywebsite.com/video.ogv

HTTP/1.1 200 OK
Date: Sun, 03 Apr 2011 19:22:20 GMT
ETag: "4d987dcf-379884-81c533dc"
Last-Modified: Sun, 03 Apr 2011 14:01:51 GMT
Content-Type: application/octet-stream
Content-Length: 3643524

Вместо «application / octet-stream» мне нужно «video / ogg».

У меня есть сервер Mongrel (нет Apache в качестве внешнего интерфейса), как я недавно узнал. Таким образом, нет возможности использовать .htaccess.

Мне нужно установить MIME-тип для обычных файлов, не ответов от контроллера и т. Д.

Я пробовал несколько способов, описанных в моем предыдущем вопросе: HTML 5 видео (ogv) и MIME типы

Но я не работаю. Я все еще получаю "application / octet-stream".

Мои вопросы:

  1. Как я могу установить типы пантомимы для обычных файлов, не ответов от контроллера?

  2. Служит ли Mongrel файлы, находящиеся в каталоге / public, или что-то еще?

1 Ответ

0 голосов
/ 04 апреля 2011

Я понял это.

Все методы, описанные в моем предыдущем вопросе, устанавливают MIME-типы для среды Rails, а не Mongrel.

Мне нужны дополнительные MIME-типы вУровень Mongrel, а не Rails.

Итак, запустив mongrel через…

/usr/bin/mongrel_rails,

… Мне нужно передать ему файл YAML, который содержит дополнительные MIME-типы, которые я хочу объявить,Этот файл YAML может выглядеть следующим образом (mongrel_mime_types.yml):

.ogv: video/ogg
.ogg: application/ogg
.ogx: application/ogg

Я держу его в / config / initializers, для удобства.

Итак, при запуске Mongrel мне нужно пройтиэтот файл:

/usr/bin/mongrel_rails -m /path_to_my_project/http/config/initializers/mongrel_mime_types.yml

Теперь, если я проверю с помощью curl, я получу правильный MIME:

$ curl -I http://mywebsite.com/video.ogv

HTTP/1.1 200 OK
Date: Mon, 04 Apr 2011 05:38:01 GMT
ETag: "4d987dcf-379884-81c533dc"
Last-Modified: Sun, 03 Apr 2011 14:01:51 GMT
Content-Type: video/ogg
Content-Length: 3643524
...