Проблема с Rails 3.2/Heroku — предварительная компиляция видео .mp4 в пабликах/видео

Новичок в rails здесь: у меня есть приложение rails, и я хотел бы разместить видео на странице или двух, используя теги видео html5. В настоящее время я использую Rails 3.2 и кедровый стек Heroku для развертывания своего приложения. У меня возникла проблема при развертывании моего приложения в Heroku.

Я поместил свои видео .mp4 в public/videos, и при запуске локального сервера rails все работает нормально.

Однако, когда я развертываю на героку, страницы, содержащие эти видео, не загружаются, т.е. «Извините, но что-то пошло не так». Проверка журналов

heroku logs

показывает эту ошибку

ActionView::Template::Error (car_circle.mp4 isn't precompiled)

это не слишком удивительно, так как кажется, что общая папка не включена в конвейер ресурсов rails 3.2, и поэтому все в ней не компилируется предварительно.

Если мои рассуждения здесь верны, я хотел бы знать, как я могу включить общедоступные/видео в свой конвейер ресурсов, чтобы эти видео можно было предварительно скомпилировать. С другой стороны, если мне не нужно размещать эти видео в /public, было бы неплохо получить некоторые рекомендации о том, как правильно переместить их в конвейер ресурсов.

Надеюсь, я предоставил достаточно информации для всех вас, чтобы помочь мне. Спасибо.


person Nathaniel Gentile    schedule 30.09.2012    source источник


Ответы (1)


добавление

config.assets.paths << "#{Rails.root}/public/videos"

to config/application.rb разрешил добавить папку /public/videos в конвейер ресурсов. Это позволило загрузить страницы с видео на них, однако страница по-прежнему загружает видео неправильно.

Это добавило путь к конвейеру активов. Пути в конвейере ресурсов можно просмотреть, открыв консоль rails и набрав:

Rails.application.config.assets.paths

Скорее всего, вы столкнетесь с таким списком:

 => ["/Users/someuser/Documents/Rails/some_app/app/assets/images", 
"/Users/someuser/Documents/some_app/app/assets/javascripts",...,
/Users/someuser/Documents/some_app/public/videos"]
person Nathaniel Gentile    schedule 01.10.2012