Почему jQuery не загружается в моем приложении Rails 3.2.3?

До вчерашнего дня jQuery прекрасно загружался в моем приложении на Rails. Я играл с установкой гема debugger / ruby-debug. Как вы, вероятно, знаете, есть проблемы с гемом отладчика в Rails 3, и мне не удалось получить установку зависимостей, поэтому я удалил гемы из своего Gemfile. С тех пор при загрузке моего сайта jQuery не загружается. Это сообщения, которые я вижу в консоли:

<code>assets/jquery_ujs.js?body=1:377Uncaught ReferenceError: jQuery is not defined
bootstrap-transition.js:24Uncaught TypeError: undefined is not a function
bootstrap.js:3Uncaught ReferenceError: jQuery is not defined
welcome:210Uncaught ReferenceError: $ is not defined
</code>

А вот мой файл application.js:

<code>//= require jquery
//= require jquery_ujs
//= require twitter/bootstrap
//= require_tree .
</code>

Если я загружаю jQuery явно в layouts / application.html.erb, вот так, это работает:

<code><%= javascript_include_tag "http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" %>
<%= javascript_include_tag "application" %>
</code>

Есть мысли о том, что я могу сделать, чтобы решить эту проблему и снова загрузить jQuery? Глядя в .rvm / gems / ruby-1.9.3-p125 / gems / jquery-rails-2.0.2 / vendor / assets / javascripts, я вижу, что jquery.js и jquery.min.js все еще там.

 David14 мая 2012 г., 16:54
У вас, должно быть, какой-то конфликт с вашими файлами JS. Попробуйте изменить порядок деревьев и посмотрите, будет ли это иметь значение.
 Ryan Arneson11 мая 2012 г., 17:05
No. Я никогда не должен был раньше. Насколько я знаю, jQuery включен в новое приложение Rails. Во всяком случае, это по сути то, что я делаю в моем фрагменте выше, но я использую CDN вместо локальной библиотеки. Очевидно, что для производства я бы также использовал локальную библиотеку для отступления, но это был всего лишь тест.
 Ryan Arneson11 мая 2012 г., 16:48
Конечно да. Даже gem успешно установил jquery-rails.
 Dylan Markow11 мая 2012 г., 16:31
У тебя все еще естьgem 'jquery-rails' строка в вашем gemfile?
 uday11 мая 2012 г., 16:58
Вы пытались поместить библиотеки jquery в папку app / assets / javascripts?

Ответы на вопрос(3)

Решение Вопроса

похоже, решило проблему. Вот мое исправленное дерево:

//= require jquery_ujs
//= require jquery
//= require twitter/bootstrap
//= require jquery.placeholder
//= require_tree .
 tibbon09 янв. 2013 г., 23:18
Есть идеи, почему это работает?
 kibaekr17 февр. 2014 г., 09:21
это решило и мою проблему!

Убедитесь, что Jquery загружается только один раз.

Включаютgem 'jquery-rails' в Gemfile и делай$ bundle install

Обязательно включите их вapp/assets/javascripts/application.js файл

//= require jquery
//= require jquery_ujs

Синтаксис, когда неправильно, как// require jquery приводит к тому, что jquery не загружается.

Если все включено правильно, источник страницы вашего HTML-файла должен показать все включенные исходные файлы.

У меня была проблема, потому что я явно загружал исходные коды плагинов jquery из google в application.html.erb в app / views / layouts, за исключением того, что требовал этого в файле application.js в app / assets / javascript. Это вызвало повторное определение jquery и несколько ошибок, таких какplaceholder() не определено,oApi не определено дляnull всплывет.

В моем случае проблема была в асинхронной загрузке файла javascript.

<%= javascript_include_tag "application", :async => true %>

Возвращаясь к

<%= javascript_include_tag "application" %>

решил проблему.

 Marklar01 нояб. 2015 г., 09:12
Это исправило и для меня. Я хотел бы воспользоваться асинхронностью, есть идеи, почему она вызывает проблемы?

Ваш ответ на вопрос