Rails 3.1和jquery-ui资产

这是在另一个问题,但没有一个解决scheme似乎在3.1rc1我的工作。

我试图在rails 3.1中使用新的资产东西 – 我有这样的文件:

./vendor/assets/stylesheets/jquery-ui-1.8.13.custom.css ./vendor/assets/javascripts/jquery-ui-1.8.13.custom.min.js 

然后我补充说:

 //= require jquery-ui to app/assets/javascripts/application.js *= require jquery-ui to app/assets/stylesheets/application.css 

jquery-ui javascript文件加载得很好,但是css文件说:

 Sprockets::FileNotFound (couldn't find file 'jquery-ui' (in /home/xanview2/xancar/app/assets/stylesheets/application.css):6): 

有任何想法吗?

工作设置的例子:

  $ cat app/assets/javascripts/application.js //= require jquery //= require jquery-ui $ cat app/assets/stylesheets/application.css /* *= require vendor * */ $ cat vendor/assets/stylesheets/vendor.css /* *= require_tree ./jquery_ui * */ vendor/assets/ $ tree stylesheets vendor.css jquery_ui   jquery-ui-1.8.13.custom.css ... images  jquery_ui  ui-bg_flat_0_aaaaaa_40x100.png ... 

最后运行这个命令:

  vendor/assets/images $ ln -s jquery_ui/ images 

享受你的jQuery UI

这是一篇关于Rails 3.1的资产pipe道和jQuery UI的很好的文章: JQuery-UI CSS和图像,以及Rails Asset Pipeline

jquery-ui-rails gem(查看公告 )可能会带来更多的好运,它将jQuery UI JavaScript,样式表和图像打包为资源。

这个话题出现了很多,现在已经过了相当长的一段时间,情况可能会有所不同。

在Rails 3.1.2中,我发现了一些没有符号链接的东西。 按照上面的步骤,但将图像放在图像/文件夹的jquery-ui-xxx.css文件旁边。 这救了我不less头痛。

是的,这意味着图像将驻留在供应商/资产中的样式表/文件夹中,但是它起作用并且很快就可以完成。

你有没有尝试过使用rails-asset-jqueryui gem? 它的供应商jquery-ui和标准主题(目前v1.8.16),并通过资产pipe道使它们可用。 以下示例要求平滑主题。

的Gemfile:

 .... gem 'rails-asset-jqueryui' ... 

应用程序/资产/ Java脚本/ application.js中:

 ... //= require jqueryui ... 

应用程序/资产/样式表/ application.css:

 ... = require smoothness ... 

如果您使用jquery-ui-rails gem:

application.css

 /* *= require jquery.ui.all */ 

的application.js

 //= require jquery.ui.all 

在我看来,通过将这些库资源放在assets / javascripts和assets / stylesheets dirs之外,可以避免很多混淆,其中sprocket等人对于应该发生什么有一些意见。

假设你已经从美化者下载了一个定制的jquery-ui zip文件。 尝试这个:

  1. 将zip文件解压缩到资源目录的子目录中,类似于

     vendor/assets/jquery-ui-1.8.23.custom 
  2. 在application.rb中添加:

     config.assets.paths << Rails.root.join('vendor', 'assets', 'jquery-ui-1.8.23.custom').to_s 
  3. 在通常的地方添加清单文件:

    供应商/资产/ Java脚本/ jQuery的ui.js:

     //= require_tree ../jquery-ui-1.8.23.custom 

    供应商/资产/样式表/ jQuery的ui.css:

     *= require_tree ../jquery-ui.1.8.23.custom 
  4. 在config / environments / production.rb中,添加(引用清​​单文件名):

     config.assets.precompile += %w(jquery-ui.js jquery-ui.css) 
  5. 在看法:

     <%= stylesheet_link_tag 'jquery-ui' %> <%= javascript_include_tag 'jquery-ui' %> 

如果你使用这个:

https://github.com/carlhoerberg/sprockets-urlrewriter

我相信你可以将整个shebang转储到一个目录中,并且需要css文件…它会顺利地重写相关的url。

你只需要安装gem并添加一个configuration行到application.rb