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文件。 尝试这个:
-
将zip文件解压缩到资源目录的子目录中,类似于
vendor/assets/jquery-ui-1.8.23.custom
-
在application.rb中添加:
config.assets.paths << Rails.root.join('vendor', 'assets', 'jquery-ui-1.8.23.custom').to_s
-
在通常的地方添加清单文件:
供应商/资产/ Java脚本/ jQuery的ui.js:
//= require_tree ../jquery-ui-1.8.23.custom
供应商/资产/样式表/ jQuery的ui.css:
*= require_tree ../jquery-ui.1.8.23.custom
-
在config / environments / production.rb中,添加(引用清单文件名):
config.assets.precompile += %w(jquery-ui.js jquery-ui.css)
-
在看法:
<%= stylesheet_link_tag 'jquery-ui' %> <%= javascript_include_tag 'jquery-ui' %>
如果你使用这个:
https://github.com/carlhoerberg/sprockets-urlrewriter
我相信你可以将整个shebang转储到一个目录中,并且需要css文件…它会顺利地重写相关的url。
你只需要安装gem并添加一个configuration行到application.rb