gpt4 book ai didi

ruby-on-rails - JW Player - 在 Heroku 上加载播放器 : HTML5 player not found in Rails 3. 2 应用程序时出错

转载 作者:行者123 更新时间:2023-12-04 12:21:06 25 4
gpt4 key购买 nike

我有 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我在 View 中收到以下错误(在 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)

清理并预编译 Assets 并推送到Heroku后,原始 ActionView::Template::Error不再发生,但现在 JW 播放器显示此消息:
Error loading player: HTML5 player not found

这是 HAML View 中的 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 上不起作用。

有什么建议?

最佳答案

这很令人沮丧,但我们设法让它启动并运行。解决方案实际上很简单(一旦你知道该怎么做):

如果您决定不使用云托管的 JW Player(由于不涉及 Assets 管道,因此很容易设置),请下载并解压缩 jwplayer文件夹。

删除提取的 jwplayer文件夹到您的 Rails 应用程序的 /app/assets/javascripts文件夹。

将以下内容添加到您的 /app/assets/javascripts/application.js :

//= require jwplayer/jwplayer
//= require jwplayer/jwplayer.html5

运行 rake assets:precompile .

要让播放器在 View 中启动并运行,请使用下面的 (HAML) 代码段。 (其他选项可用 here 。)
%div{id: 'video'} Loading the player...
:javascript
jwplayer('video').setup({
file: 'INSERT_VIDEO_FILE_PATH_HERE',
flashplayer: "#{asset_path('jwplayer.flash.swf')}",
html5player: "#{asset_path('jwplayer.html5.js')}"
});

您必须指定 flashplayerhtml5player属性(如果您想同时支持播放器的两个版本)。

定制离开!

关于ruby-on-rails - JW Player - 在 Heroku 上加载播放器 : HTML5 player not found in Rails 3. 2 应用程序时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23665676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com