7

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 だけでなく、すべてがローカルで機能します。

助言がありますか?

4

1 に答える 1