Я использую Rails3 с Nginx.
Я обслуживаю файлы через контроллер: загружает действие.
class BannersController < ApplicationController
... # authentication
def uploads
send_file '{localFilePath}', :disposition => 'inline'
end
end
Я раскомментирую эту строку
config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx
в средах / production.rb.
Я также определил mime-тип 'm4v' внутри моих инициализаторов / mime_types.rb
Mime::Type.register "video/mp4", :m4v
MIME::Types.add(MIME::Type.from_array("video/mp4", %(m4v)))
Моя конфигурация nginx выглядит следующим образом
http {
... # ruby-1.9.3-p0
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
gzip on;
server {
client_max_body_size 30M;
listen 80;
server_name ...
root ...
passenger_enabled on;
rails_env production;
location ~ ^/(assets)/ {
root ...
gzip_static on;
expires max;
add_header Cache-Control public;
}
}
}
Когда я запрашиваю видеофайл http://{ip}/components/{id}/content/host_bg.m4v, я вижу ошибки в моей консоли chrome (один запрос выдает 4 строки)
Как я могу это исправить? Я думаю, что моя конфигурация nginx не завершена.
Обратите внимание, что я могу воспроизводить видео, но оно не обрабатывается должным образом (например, javascript HTML5 jPlayer может воспроизводить видео только один раз, после чего оно останавливается, повтор работает из других мест http). Спасибо!