将Google CDN与sprockets资源编译器一起使用

时间:2012-01-20 15:51:13

标签: ruby-on-rails-3 asset-pipeline sprockets

这似乎很简单,但无法在论坛或rails资产管道指南中找到它。

简而言之

如何通知sprockets跳过'jquery-rails'gem的jquery ui css的资产管道。

长期:

我正在尝试将'jquery-rails'宝石与Google jquery CDN一起使用。

因此,我只是包含了jquery_ujs并在应用程序布局中添加了与jquery相关的脚本:

application.js.erb:

//= require bootstrap-twipsy.js
//= require jquery-glowing
//= require jquery_ujs

application.html.erb:

= javascript_include_tag "http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"
= javascript_include_tag "http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jqueryui.min.js"

对于css',我没有在application.css中包含jquery-ui css,也将它添加到layouts文件中。

application.css.scss.erb:

 *= require_directory .
 *= require active_scaffold
 *= require_self

在生产环境中,编译的css文件也包含jquery-css代码,因为它位于'jquery-rails'gem的资源管道中。

那么如何通知sprockets跳过'jquery-rails'gem的jquery ui css的资产管道。


如果在轨道中无法做到这一点,那么处理这种情况的最佳方法是什么。

我考虑过删除jquery-rails gem,并手动将jquery_ujs javascript添加到系统中,但是我必须处理新版本的安装,而不是执行简单的“bundle update”

提前致谢,

1 个答案:

答案 0 :(得分:0)

问题在于active_scaffold gem,right here如果你想要代码引用。它包括jquery-ui CSS。

要删除此项,您需要在app / assets / stylsheets文件夹中复制整个活动脚手架css代码(如my_active_scaffold),删除指向jquery-ui的链接。我假设文件末尾的ActiveScaffold erb仍将在此上下文中运行。

然后加入它:

 *= require my_active_scaffold