在Rails应用程序中使用bigvideo.js渲染背景

use*_*135 5 html javascript video ruby-on-rails ruby-on-rails-3

我有以下实现的bigvideo.js完全在我的Rails项目之外运行.

<script src="modernizr.js"></script>
<script src="jquery-1.7.2.min.js"></script>
<script src="jquery-ui-1.8.22.custom.min.js"></script>
<script src="jquery.imagesloaded.min.js"></script>
<script src="http://vjs.zencdn.net/3.0/video.js"></script>
<!-- BigVideo -->
<script src="bigvideo.js"></script>

<script>
var BV = new $.BigVideo();
BV.init();
if (Modernizr.touch) {
BV.show('yay.jpg');
 } else {
BV.show('test.mp4',{ambient:true});
 }
</script>
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试将其转换为Rails时,它不会呈现图像或视频.
- 我有资产/ javascripts中的所有javascript文件.它们似乎正在拉动.
- Application.js不受影响,包括// = require_tree.
- 对于自定义JS(上面显示js代码的那个),我目前将它作为资产/ javascripts中的JS文件.我已经尝试将相关的图像/视频文件放在文件夹中,更改文件的网址路径,并命名为.html.erb并使用ruby片段,都没有成功.

如何让我的实施工作?你可以在这里看到它在Rails之外工作.

小智 4

我能够让 BigVideo 与 Rails 一起使用。我不确定这是否是最理想的解决方案,但如果您提供视频的完整网址(通过类似的方式<%= request.protocol + request.host_with_port + asset_path('main-video.mp4') %>),它将加载到页面上。

所以我最终使用的代码是:

<script>
  $(function() {
        var BV = new $.BigVideo();
  BV.init();
  BV.show("<%= request.protocol + request.host_with_port + asset_path('main-video.mp4') %>",{ambient:true});
  });
</script>
Run Code Online (Sandbox Code Playgroud)

我已经设置了一个示例应用程序,您可以查看一下。它位于此处(注意:我试图对您的 onepager 示例保持一定程度的忠诚,但它并不完全相同):

http://bigvideo.herokuapp.com/

您还可以在此处查看我用于创建它的代码:

https://github.com/scouttyg/bigvideo-example

我还做了一些有趣的事情,例如将视频放在自己的目录(资产/视频)中,并添加了预编译路径application.rb

我认为这个想法一般来说,您应该将 BigVideo 与 CDN 结合使用,而不是从 Rails 应用程序本身提供它 - 类似于为什么 Rails 建议将文件上传卸载到 S3 等。