Что может заставить Rails 3.1 "= require jquery" перестать работать? - PullRequest
1 голос
/ 27 июля 2011

Я портирую приложение Rails 3.0.9 на Rails 3.1.rc5.Мой application.js точно такой же, как и сам Rails 3.1:

// This is a manifest file ...
//
//= require jquery
//= require jquery_ujs
//= require_tree .

Но когда я запускаю свое приложение и смотрю на application.js в инструментах разработчика Firebug или Chrome, все, что я вижу:

// This is a manifest file ...
//

Директивы пропали, поэтому может показаться, что файл обработан Sprockets, но директивы не были заменены содержимым jquery et al.Нет ошибок, появляющихся на консоли сервера или в журналах.

Любопытно, что когда я запускаю приложение blog (вы знаете, каноническое учебное приложение ), оно отлично работает (чтоТо есть, когда я проверяю application.js в Firebug, он содержит текст jQuery.) Это может показывать, что что-то в моем приложении каким-то образом мешает Sprockets.Кто-нибудь там слышал о такой проблеме (и, надеюсь, обойти)?

Вот мои настройки:

$ gem list jquery

*** LOCAL GEMS ***

jquery-rails (1.0.12)
$ ruby -v
ruby 1.9.2p290 (2011-07-09) [i386-mingw32]
$ rails -v
Rails 3.1.0.rc5

Я в недоумении относительно того, что может быть не так.Я трижды проверил мой Gemfile;Я запускаю и перезапускаю bundle install и bundle update;Я пробовал rc3, rc4 и теперь rc5;Я использую Ruby 1.9.2p290.Есть идеи?

1 Ответ

0 голосов
/ 27 июля 2011

Один обходной путь: включите файлы JavaScript с тегом old-skool.Например, в моем макете (Haml):

= javascript_include_tag '/assets/jquery.js'
= javascript_include_tag '/assets/jquery_ujs.js'
= javascript_tag 'jQuery.noConflict();'

Префикс /assets/ указывает Rails 3.1.x искать путь к ресурсу , который включает гемы, так что выполучить те же файлы, что и с директивами Sprockets.Но вы не получите сцепления или какой-либо другой предварительной обработки Sprockets.

Все еще ищите лучшие решения.

...