我有 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
第二次尝试:
在我的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 上不行。
有什么建议么?