【问题标题】:jPlayer working with Rails app locally, but not when deployed to HerokujPlayer 在本地使用 Rails 应用程序,但在部署到 Heroku 时不能
【发布时间】:2012-11-07 01:52:24
【问题描述】:

我的 jPlayer 音频播放器在本地工作正常,但是当我部署到 Heroku 时,它不再工作,并且我在 Chrome 的控制台中收到以下错误:

Uncaught TypeError: Object [object Object] has no method 'jPlayer' 

这是我的 application.html.erb 布局中 jPlayer 的 Javascript:

  <script type="text/javascript">
  $(document).ready(function(){
    $("#jquery_jplayer_1").jPlayer({
      ready: function () {
        $(this).jPlayer("setMedia", {
             mp3: "http://test.com/song.mp3",
          // m4a: "http://www.jplayer.org/audio/m4a/Miaow-07-Bubble.m4a",
          // oga: "http://www.jplayer.org/audio/ogg/Miaow-07-Bubble.ogg"
        });
      },
      swfPath: "/javascriptipts",
      supplied: "mp3, m4a, oga"
    });
  });

我注意到包含脚本的方式似乎与在 Heroku 上的工作方式不同。对于我的本地实例(有效),源代码中包含的脚本如下所示:

   <link href="/assets/application.css?body=1" media="all" rel="stylesheet" type="text/css" />
<link href="/assets/bootstrap-responsive.css?body=1" media="all" rel="stylesheet" type="text/css" />
<link href="/assets/bootstrap.css?body=1" media="all" rel="stylesheet" type="text/css" />
<link href="/assets/calls.css?body=1" media="all" rel="stylesheet" type="text/css" />
<link href="/assets/jplayer.blue.monday.css?body=1" media="all" rel="stylesheet" type="text/css" />
<link href="/assets/main.css?body=1" media="all" rel="stylesheet" type="text/css" />
   <script src="/assets/jquery.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery_ujs.js?body=1" type="text/javascript"></script>
<script src="/assets/bootstrap-alert.js?body=1" type="text/javascript"></script>
<script src="/assets/bootstrap-button.js?body=1" type="text/javascript"></script>
<script src="/assets/bootstrap-carousel.js?body=1" type="text/javascript"></script>
<script src="/assets/bootstrap-collapse.js?body=1" type="text/javascript"></script>
<script src="/assets/bootstrap-dropdown.js?body=1" type="text/javascript"></script>
<script src="/assets/bootstrap-modal.js?body=1" type="text/javascript"></script>
<script src="/assets/bootstrap-popover.js?body=1" type="text/javascript"></script>
<script src="/assets/bootstrap-scrollspy.js?body=1" type="text/javascript"></script>
<script src="/assets/bootstrap-tab.js?body=1" type="text/javascript"></script>
<script src="/assets/bootstrap-tooltip.js?body=1" type="text/javascript"></script>
<script src="/assets/bootstrap-transition.js?body=1" type="text/javascript"></script>
<script src="/assets/bootstrap-typeahead.js?body=1" type="text/javascript"></script>
<script src="/assets/bootstrap.js?body=1" type="text/javascript"></script>
<script src="/assets/bootstrap.min.js?body=1" type="text/javascript"></script>
<script src="/assets/calls.js?body=1" type="text/javascript"></script>
<script src="/assets/custom.js?body=1" type="text/javascript"></script>
<script src="/assets/google-code-prettify/prettify.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery-ui.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery.jplayer.min.js?body=1" type="text/javascript"></script>
<script src="/assets/application.js?body=1" type="text/javascript"></script>

在 jPlayer 不工作的 Heroku 上,由于某种原因,加载的脚本在源代码中如下所示:

<link href="/assets/application-7d9d2071282c290d4dd4bb767188d15f.css" media="all" rel="stylesheet" type="text/css" />
<script src="/assets/application-679ead39cc620e8b5be4723def8305ce.js" type="text/javascript"></script>

以下是我如何将它们包含在我的 application.html.erb 布局中:

<%= stylesheet_link_tag    "application", :media => "all" %>
<%= javascript_include_tag "application" %>

任何人有任何想法可能导致此问题以及我该如何解决?

提前致谢!

【问题讨论】:

  • 您确定您已正确部署资产吗?
  • 我不诚实。我是资产管道的新手。现在我在应用程序/资产中拥有一切。我在 lib/assets 或 vendor/assets 中没有任何内容。也许我应该?
  • 查看编译后的javascript是否有jplayer文件中的javascript
  • 在我的 assets/application-679ead39cc620e8b5be4723def8305ce.js 中出现以下错误:“未捕获的类型错误:无法读取未定义的属性“构造函数”

标签: jquery ruby-on-rails-3 layout heroku jplayer


【解决方案1】:

我想通了,虽然我不完全确定为什么会这样。

我不得不从“assets/javascripts”中删除“bootstrap-popover.js”文件。它在本地导致以下错误(上面讨论过),这使我将 2-and-2 放在一起。

"Uncaught TypeError: Cannot read property "Constructor" of undefined

不知道为什么它在本地工作,尽管有这个错误?如果有人知道,我很想知道原因。

【讨论】:

    猜你喜欢
    • 2014-08-25
    • 1970-01-01
    • 2019-11-22
    • 2020-07-17
    • 1970-01-01
    • 2015-07-24
    • 1970-01-01
    • 2018-08-05
    • 1970-01-01
    相关资源
    最近更新 更多