Ответ 1
Спасибо @Djj. Повторное упорядочение моего дерева application.js, похоже, решило проблему. Вот мое измененное дерево:
//= require jquery_ujs
//= require jquery
//= require twitter/bootstrap
//= require jquery.placeholder
//= require_tree .
До вчерашнего дня jQuery загружался очень хорошо в моем приложении Rails. Я играл с получением установленного отладчика/рубинового отладки. Поскольку вы, вероятно, знаете, что есть проблемы с камнем отладчика в Rails 3, и я не увенчался успехом в создании зависимостей, поэтому я удалил драгоценные камни из своего Gemfile. С тех пор при загрузке моего сайта jQuery не загружается. Это сообщения, которые я вижу в консоли:
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
И вот мой файл application.js:
//= require jquery
//= require jquery_ujs
//= require twitter/bootstrap
//= require_tree .
Если я загружаю jQuery явно в layouts/application.html.erb, вот так:
<%= javascript_include_tag "http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" %>
<%= javascript_include_tag "application" %>
Любые мысли о том, что я могу сделать, чтобы решить эту проблему и снова загрузить jQuery? Глядя в .rvm/gems/ruby-1.9.3-p125/gems/jquery-rails-2.0.2/vendor/assets/javascripts Я вижу, что jquery.js и jquery.min.js все еще существуют.
Спасибо @Djj. Повторное упорядочение моего дерева application.js, похоже, решило проблему. Вот мое измененное дерево:
//= require jquery_ujs
//= require jquery
//= require twitter/bootstrap
//= require jquery.placeholder
//= require_tree .
В моем случае проблема заключалась в асинхронной загрузке файла javascript.
<%= javascript_include_tag "application", :async => true %>
Возврат к
<%= javascript_include_tag "application" %>
решил проблему.
После долгого времени это решило мою проблему с ошибкой.
Убедитесь, что 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 в приложениях/представлениях/макетах, кроме необходимости в файле application.js в приложении /assets/javascript. Это вызвало повторение определения jquery и появление нескольких ошибок, таких как placeholder()
, oApi
, не определенных для null
.