JW Player 6 のライセンス版を持っています。ファイルをダウンロードして、assets/javascript ディレクトリに配置しました。skins ディレクトリとは別に、HTML5 プレーヤー用の JS ファイルと、Flash プレーヤー用の flash.swf ファイルがあります。これまでに行ったことはすべてローカルで機能しましたが、Heroku にプッシュするとすぐにエラーが発生します。
最初の試み:
私のapplication.js
ファイルでは:
...
//= require jwplayer/jwplayer
//= require jwplayer/jwplayer.html5 # the file name is jwplayer.html5.js
...
実行後rake assets:clean ; rake assets:precompile
、(Heroku の) ビューに次のエラーが表示されます。
An ActionView::Template::Error occurred in nodes#show:
jwplayer/jwplayer.html5.js isn't precompiled
2 回目の試行:
私のapplication.js
ファイルでは:
...
//= require jwplayer/jwplayer
...
次に、これをproduction.rb
環境設定ファイルに追加しました。
# Also tried %w(jwplayer.html5.js)
config.assets.precompile += %w(jwplayer/jwplayer.html5.js)
アセットをクリーンアップしてプリコンパイルし、Heroku にプッシュした後、元ActionView::Template::Error
のエラーは発生しなくなりましたが、JW プレーヤーに次のメッセージが表示されるようになりました。
Error loading player: HTML5 player not found
これは、HAML ビューでの JW Player の初期化です。
:javascript
jwplayer("video_display_object_#{display_object.id}").setup({
width: "948",
height: "533",
image: "#{display_object.video_screenshot_url}",
file: "#{display_object.resource_url}",
modes: [
{ type: 'flash',
src: "#{asset_path('jwplayer/jwplayer.flash.swf')}",
config: {
skin: "#{asset_path('jwplayer/skins/beelden.xml')}",
'controlbar.position': 'over',
'controlbar.idlehide': 'true'
}
},
// I've also tried "#{javascript_path('jwplayer/jwplayer.html5.js}"
// And "/assets/jwplayer/jwplayer.html5.js"
{ type: 'html5', src: "#{asset_path('jwplayer/jwplayer.html5.js')}" }
]
});
この時点で何をすべきか本当にわかりません。前述したように、Heroku だけでなく、すべてがローカルで機能します。
助言がありますか?