Rails активов конвейера и плагинов jquery. Что мне не хватает?
В проекте Rails 3.2 у меня есть файл application.js, который выглядит следующим образом:
//= require jquery
//= require jquery.hoverIntent
//= require jquery_ujs
//= require my_custom_js
И в моем макете мы просто ссылаемся <%= javascript_include_tag 'application' %>
Код в my_custom_js.js
на самом деле использует плагин из jquery.hoverIntent.js
, но когда я загружаю страницу, я получаю сообщение об ошибке JavaScript, говорящее, что нет такого hoverIntent
Функция доступна на объекте, хотя я могу проверять элементы и видеть здоровые ссылки на существующие файлы.
Кикер здесь в том, что если я уберу эти две ссылки из application.js
он загружается просто отлично. то есть:
<%= javascript_include_tag 'application' %>
<%= javascript_include_tag 'jquery.hoverIntent' %>
<%= javascript_include_tag 'my_custom_js' %>
Что мне здесь не хватает?
2 ответа
В вашем /layouts/application.html.erb
Добавьте эти фрагменты в свой head
раздел для загрузки JQuery.
<%= javascript_include_tag "jquery" %>
<%= javascript_incldue_tag 'jquery.hoverIntent' %>
<%= javascript_incldue_tag 'my_custom_js' %>
это загрузит jquery на все ваши страницы.
Если вам нужно больше информации о том, почему application.js не работает, прочитайте это, чтобы узнать больше. Моя единственная идея заключается в том, что ваш плагин не назван jquery.hoverIntent
или ваши пути неверны.
ХОРОШО. Я понял это, и я чувствую себя глупым. Конвейер активов работал как предполагалось, но я предварительно предварительно скомпилировал активы, и он обслуживал ранее скомпилированные application.js
который перезагружал jQuery, но ни один из плагинов.