【问题标题】:404s when using a 3rd party video player with rails asset pipeline使用带有 Rails 资产管道的 3rd 方视频播放器时出现 404
【发布时间】:2016-11-17 20:38:26
【问题描述】:

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

其中包含 javascript 清单文件:

//= 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

显然,这个播放器代码正在添加带有 src 属性的 html,该属性指向不可访问的文件——因为它们在从清单生成的主 js 和 css 文件中可用。

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

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

但是,在这样做并预编译之后,我仍然无法访问:

/assets/bitmovinplayer-core.min.css

我要去:

/assets/bitmovinplayer-core.min-78b88b860ccc407fd131639914ecd692.css

这不好..我需要能够在没有 url 哈希的情况下访问此资产。

我该怎么做?

【问题讨论】:

    标签: ruby-on-rails asset-pipeline bitmovin-player


    【解决方案1】:

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

    但是,有一个配置设置允许您覆盖路径 bitmovin-player 将从 documented here 加载这些文件。

    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 变得相当容易。您可以查看on GitHub。我正在考虑将自托管选项添加到 gem 中 - 但目前没有时间进行讨论。 (如果您删除添加到页面头部的&lt;%= bitmovin_player_script %&gt;,嵌入播放器的帮助程序仍然有效。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-05
      • 2013-12-02
      • 2012-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-26
      • 2014-08-27
      相关资源
      最近更新 更多