2012-11-06 2 views
1

У меня есть аудио-плеер jPlayer работает нормально локально, но когда я раскрываю к Heroku, она больше не работает, и я получаю следующее сообщение об ошибке в консоли Chrome:jPlayer не работает с приложением Rails локально, но не при развертывании на Heroku

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

Вот Javascript для jPlayer в моей application.html.erb расположение:

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

Я заметил, что путь скрипты включены, кажется, работает DIF чем на Героку. Для моего локального экземпляра (который работает) сценарии, включенные выглядеть в источнике:

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

На Heroku, где jPlayer не работает, сценарии загруженную выглядеть в источнике по какой-то причине:

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

Кто-нибудь есть какие-нибудь мысли, что может быть причиной этого и как я могу это исправить?

Заранее благодарен!

+0

Вы уверены, что правильно разместили активы? – Lichtamberg

+0

Я не буду честным. Я новичок в конвейере активов. Сейчас у меня все в приложении/активах. У меня нет ничего в lib/assets или vendor/assets. Должен ли я, возможно? – dougiebuckets

+0

загляните в скомпилированный javascript, если есть javascript из файла jplayer – Lichtamberg

ответ

1

Я понял это, хотя я не совсем уверен, почему это произошло.

Мне пришлось удалить файл «bootstrap-popover.js» из «assets/javascripts». Это вызвало локальную ошибку (обсуждалось выше), которая заставила меня поставить 2-и-2 вместе.

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

Не знаете, почему он работал локально, несмотря на эту ошибку? Если кто знает, я бы хотел узнать почему.

Смежные вопросы