Хотя название вопроса очень похоже на ряд предыдущих, моя проблема кажется другой.
Вкратце, первый элемент в манифесте js включен дважды.
Вот весь мой /app/assets/javascript/application.js
файл в приложении на Rails 3.1:
//= require jquery
//= require jquery-ui
//= require jquery_ujs
//= require autocomplete-rails
//= require utilities
А вот фрагмент источника отрисованной страницы:
<script src="/assets/jquery.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery-ui.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery_ujs.js?body=1" type="text/javascript"></script>
<script src="/assets/autocomplete-rails.js?body=1" type="text/javascript"></script>
<script src="/assets/utilities.js?body=1" type="text/javascript"></script>
<script src="/assets/application.js?body=1" type="text/javascript"></script>
Обратите внимание, что если я перейду наверх, любая другая строка в application.js
будет выглядеть примерно так:
//= require utilities
//= require jquery
//= require jquery-ui
//= require jquery_ujs
//= require autocomplete-rails
Это всегда первый предмет, который включается дважды!
<script src="/assets/utilities.js?body=1" type="text/javascript"></script>
<script src="/assets/utilities.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery-ui.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery_ujs.js?body=1" type="text/javascript"></script>
<script src="/assets/autocomplete-rails.js?body=1" type="text/javascript"></script>
<script src="/assets/application.js?body=1" type="text/javascript"></script>
UPDATE
В качестве временного решения я добавил //= require dummy
вверху списка, который указывает на пустой файл dummy.js. Хотя он отображается дважды на отображаемой странице, он не имеет никакого эффекта, так как ничего не делает. С другой стороны, если я установлю config.assets.debug = false
в development.rb
, как часто предлагается, тогда ВСЕ мои javascript будут загружены дважды:
<script src="/assets/application.js" type="text/javascript"></script>
<script src="/assets/application.js" type="text/javascript"></script>
и js-действия запускаются дважды (например, два раза подтверждаются диалоговые окна при удалении модели)
Giuseppe