1

我正在将Rails 3.0.9应用程序移植到Rails 3.1.rc5。我application.js是完全一样的一个由Rails的3.1本身产生:什么能导致Rails 3.1“=需要jquery”停止工作?

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

但是当我运行我的应用程序,看看在Firebug或Chrome开发人员工具的application.js,我看到的是:

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

该指令已经消失,所以看起来文件已由Sprockets处理,但指令并未被jquery等内容所取代。服务器控制台或日志中不显示错误。

奇怪的是,当我运行一个blog应用程序(你知道,canonical tutorial app)正常工作(也就是,当我检查萤火虫application.js,它包含的jQuery的文本。)这似乎表明,东西我的应用程序在某种程度上干扰了链轮。有没有人听说过这样的问题(并希望解决方法)?

这里是我的设置:

$ 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 installbundle update;我试过rc3,rc4和现在rc5;我正在运行Ruby 1.9.2p290。有任何想法吗?

回答

0

一种解决方法:将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预处理。

仍在寻找更好的解决方案。

+2

我看到相同的东西。 RC5上的这件事情是如何超越我的。 – AKWF

+0

同样在这里,但在Rails 3.1稳定! –

相关问题