当使用带有rails资源管道的第三方视频播放器时



具体来说,我正在尝试添加一个视频播放器到我的web应用程序..

javascript manifest文件中有:

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

和在CSS清单中:

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

在资产编译后查看连接的.js文件时,我看到这些文件被正确地包含在那里。

然而,当尝试实例化一个玩家时,我在控制台中看到404:

vendor-d8cd0ac....js:38 GET https://myapp.com/assets/bitmovinplayer-core.min.css

vendor-d8cd0ac....js:38 GET https://myapp.com/assets/bitmovinplayer-core.min.js

所以显然这个播放器代码是添加html与src属性,是指向的文件是不可访问的-因为他们是可用的主js &从manifest中生成的CSS文件

所以我认为通过手动添加这些文件到资产预编译数组,这将解决问题.............

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

然而,在做了这个和预编译之后,我仍然不能转到:

/资产/bitmovinplayer-core.min.css

我必须去:

/资产/bitmovinplayer core.min - 78 b88b860ccc407fd131639914ecd692.css

这不好…我需要能够访问这个资产没有哈希在url。

我该怎么做?

这里的问题是,每当Rails通过资产管道预编译资产时,它都会向文件附加一个散列以改进缓存。由于bitmovin-player期望这些文件在默认情况下以某种方式命名,因此它将遇到404错误。

然而,有一个配置设置可以让你重写bitmovin-player将从这里加载这些文件的路径。

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-player相当容易。你可以在GitHub上查看。我正在考虑将自托管选项添加到gem中-但目前没有时间去做。(如果您删除添加到页面头部的<%= bitmovin_player_script %>,则嵌入播放器的助手仍然有效。

相关内容

  • 没有找到相关文章

最新更新