2011-06-10 45 views
0

我刚刚升级到Rails 3.1,并且遇到了使用新资产管道加载Javascript的问题。Ruby on Rails 3.1 RC1 Javascript资产流水线问题

我抄js文件(这两个文件自己和.min变形)到我的/应用/资产/ JavaScript的目录,我的application.js清单如下:

//= require jquery 
//= require jquery_ujs 
//= require jquery-easytabs 
//= require jquery-hashchange.min 
//= require_tree . 

但这似乎没有工作; Easytabs未正确加载。奇怪的是,当我在编译的application.js文件中查看控制台时,我可以看到Easytabs代码,但它不起作用。

我发现如果我将代码直接粘贴到application.js文件中,它可以按预期工作,所以我知道该脚本正在工作。但是,这不是application.js文件的预期用途。

为了确保js文件的正确加载,我将不胜感激任何关于下一步要去哪里的指导。

谢谢!

+0

我已经在这里回答了一个类似的问题:http://stackoverflow.com/questions/6149961/rails-3-1-asset-pipeline-and-manually-ordered-javascript-requires/8687169#8687169 – justingordon 2012-01-01 04:08:00

回答

0

我设法弄到了这一点 - 它似乎是要求的顺序是按字母顺序的,所以jquery_easytabs在jquery_ujs之前被编译。我通过重命名jquery_zeasytabs解决了这个问题 - 不是最干净的,但它确实有效。

0

尝试将所有插件(如easytabs)移动到供应商目录中。

vendor/assets/javascripts/

那么你的application.js文件改成这样:

//= require jquery 
//= require jquery_ujs 
//= require_tree ../../../vendor/assets/javascripts 
//= require_tree . 

你应该(如果你AKS我),你已经在你的应用程序对特定的控制器只写地点代码/资产/ javascripts目录,其他一切,如插件应该在供应商目录中。