1

I have the jPlayer audio player working fine locally, but when I deploy to Heroku, it no longer works and I get the following error in Chrome's console:

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

Here's the Javascript for jPlayer in my application.html.erb layout:

  <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"
    });
  });

I'm noticing that the way the scripts are included seems to be working differently than it is on Heroku. For my local instance (which works) the scripts included look like this in the source:

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

On Heroku, where jPlayer is not working, the scripts loaded look like this in the source for some reason:

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

Here's how I include them in my application.html.erb layout:

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

Anyone have any thoughts what might be causing this and how I can fix it?

Thanks in advance!

4

1 回答 1

1

我想通了,虽然我不完全确定它为什么会发生。

我不得不从“assets/javascripts”中删除“bootstrap-popover.js”文件。它在本地引起了以下错误(如上所述),这使我将 2-and-2 放在一起。

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

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

于 2012-11-06T17:52:24.480 回答