2016-11-17 7 views
1

В частности, я пытаюсь добавить видео плеер на моем веб-приложение ..ошибки 404 при использовании 3-й партии видеоплеер с конвейера Рельсы активов

Javascript Файл манифеста имеет в нем:

//= require bitmovinplayer.min                            
//= require bitmovinplayer-core.min 
//= require bitmovinplayer-controls.min 

и в CSS манифесте:

@import "bitmovinplayer-core.min";                               
@import "bitmovinplayer-controls.min"; 

при просмотре файла каскадного .js после компиляции активов, я вижу, что эти файлы там должным образом получать включены.

Однако при попытке создать экземпляр игрока, есть 404-х, которые я вижу в консоли:

поставщика d8cd0ac ... .js: 38 ПОЛУЧИТЬ https://myapp.com/assets/bitmovinplayer-core.min.css

поставщика d8cd0ac ... .js: 38 GET https://myapp.com/assets/bitmovinplayer-core.min.js

Так, по-видимому, этот игрок код добавления HTML, который с ЦСИ атрибуты, которые указывают на файлы, которые не accessible--, потому что они доступны в основных Js & css-файлы, созданные из манифеста.

Так я думал, что вручную путем добавления этих файлов в активах прекомпиляции массива, это позволит решить проблему .............

config.assets.precompile += [ 
    'bitmovinplayer-core.min.css', 
    'bitmovinplayer-core.min.js', 
] 

Однако, после того, как делать это и Прекомпиляцию , я до сих пор не могу пойти:

/assets/bitmovinplayer-core.min.css

я должен пойти:

/assets/bitmovinplayer-core.min-78b88b860ccc407fd131639914ecd692.css

Который не хорошо .. Мне нужно, чтобы иметь возможность получить доступ к этому активу без хэша в URL.

Как это сделать?

ответ

2

Проблема заключается в том, что всякий раз, когда Rails прекомпилирует актив через конвейер активов, он добавляет хэш в файлы для улучшения кэширования. Так как битмовин-плеер ожидает, что эти файлы будут названы определенным образом по умолчанию, он столкнется с ошибкой 404.

Существует, однако, параметр конфигурации, который позволяет вам переопределять пути, которые битмовин-плеер будет загружать эти файлы с documented here.

location : { 
    html5 : '<%= asset_path('bitmovinplayer-core.min.js') %>', 
    css : '<%= asset_path('MY_CSS_FOLDER/bitmovinplayer-core.min.css') %>', 
    flash : '/bitmovinplayer.swf', 
    vr : '<%= asset_path('bitmovinplayer-vr.min.js') %>', 
    ctrls : '<%= asset_path('MY_JS_FOLDER/bitmovinplayer-controls.min.js') %>', 
    ctrls_css: '<%= asset_path('MY_CSS_FOLDER/bitmovinplayer-controls.min.css') %>' 
} 

К сожалению, нет никакого способа, в данный момент сказать игроку, что все файлы, объединенные в один и он не должен перезагрузить любой JS/CSS. Поэтому до тех пор вам нужно добавить каждый отдельный файл в список config.assets.precompile.

Если вам действительно не нужен самодельный проигрыватель, я написал Rails gem вчера, что упрощает встраивание и настройку bitmovin-плеера.Вы можете проверить это on GitHub. Я думаю о добавлении самообслуживаемого варианта к драгоценному камню, но на данный момент у меня нет времени на это. (Помощник для встраивания плеера все еще работает, если вы удалите <%= bitmovin_player_script %>, который добавляется к главе страницы.

Надеется, что это помогает.