我使用 gem rack-coffee来编译我的咖啡脚本。我也想使用 jquery.js。我把它们放在同一个文件夹中,但它不起作用。Rack-coffee 还编译 jquery.js,编译器会抛出错误。如何在同一个文件夹中使用这两种文件。
use Rack::Coffee,
:root => File.join(Dir.pwd, 'assets'),
:urls => '/javascripts'
我使用 gem rack-coffee来编译我的咖啡脚本。我也想使用 jquery.js。我把它们放在同一个文件夹中,但它不起作用。Rack-coffee 还编译 jquery.js,编译器会抛出错误。如何在同一个文件夹中使用这两种文件。
use Rack::Coffee,
:root => File.join(Dir.pwd, 'assets'),
:urls => '/javascripts'
作为替代方案,我最近编写了一个使用 jQuery 的 CDN 的 gem。如果将其添加到中间件堆栈中,则无需考虑它。
require 'rack/jquery'
use Rack::Coffee,
:root => File.join(Dir.pwd, 'assets'),
:urls => '/javascripts'
use Rack::JQuery # This can go before or after Rack::Coffee, it doesn't matter.
# add this to your layout's head section:
= Rack::JQuery.cdn env
该页面现在将使用 Google 的 jQuery CDN(有关 CDN 的更多信息,请参见http://jquery.com/download/),并且该库捆绑了一个备用脚本。
rack-coffee README描述了一种方法:
如果您想从与您的咖啡脚本文件相同的目录中提供库存 javascript 文件,请在 Rack::Coffee 之后在中间件堆栈中添加一个 Rack::File。
虽然Rack::File似乎不是一个中间件,而是一个独立的 Rack 应用程序类,所以我会在上面的代码之前使用Rack::Static :
use Rack::Static,
:root => File.join(Dir.pwd, 'assets'),
:urls => ["/javascripts"]
use Rack::Coffee,
:root => File.join(Dir.pwd, 'assets'),
:urls => '/javascripts'