2012-01-27 18 views

答えて

3

簡単なアプローチはありません。アセットパイプラインは、Rails 2.3にはないRails 3.1.xのいくつかのアーキテクチャに依存しています。

Davis Frank outlines hereというアプローチを試すことができますが、いくつかの手順が必要であることに注意してください。

+0

Iをまさにこの記事に続きましたが、この仕事をどのように働かせるか説明されていません... – astropanic

+0

それは本当ではありません; 「Rails 3.1はアセットを提供します:デプロイメントプロセスの一部として使用されるプリコンパイル空のRails 3.1アプリケーションを生成してlib/tasksにコピーします。あなたのconfig.ruからSprocketsの設定をコピーします。この仕事。" –

+0

記事に関する質問がある場合、尋ねる最も良い場所は著者自身です:http://pivotallabs.com/users/dwfrank/profile –

4

あなたは資産のソースコードを探している場合:プリコンパイルrakeタスク、あなたがそれをここに見つけることができます:

https://github.com/rails/rails/blob/3-1-stable/actionpack/lib/sprockets/assets.rake

あなたはそれをコピーするとき、それはそのままで実行するように期待しないでくださいスレーブとスプロケット - ヘルパーの宝石とレール2.3.14アプリのあなたのlib /タスク。

[更新]

Iは、(任意のJavaScript圧縮せず)レール2.3.14で使用するための単純なプリコンパイラrakeタスクを作りました。あなたの設定に応じて、いくつかのものを変更したいかもしれません。それはrm_rfコマンド;-)

BUILD_DIR = Rails.root.join("public/assets") 
DIGEST = true 

namespace :assets do 

    task :compile => :cleanup do 

    sprockets = Sprockets::Environment.new 
    sprockets.append_path 'app/assets/images' 
    sprockets.append_path 'app/assets/javascripts' 
    sprockets.append_path 'app/assets/stylesheets' 

    sprockets.each_logical_path do |logical_path| 
     if asset = sprockets.find_asset(logical_path) 
     target_filename = DIGEST ? asset.digest_path : asset.logical_path 
     prefix, basename = asset.pathname.to_s.split('/')[-2..-1] 
     FileUtils.mkpath BUILD_DIR.join(prefix) 
     filename = BUILD_DIR.join(target_filename) 
     puts "write asset: #{filename}" 
     asset.write_to(filename) 
     #asset.write_to("#{filename}.gz") if filename.to_s =~ /\.(css|js)$/ 
     end 
    end 
    end 

    # Cleanup asset directory 
    task :cleanup do 
    dirs = Dir.glob(File.join(BUILD_DIR.join("{*}"))) 
    dirs.each do |dir| 
     puts "removing: #{dir}" 
     FileUtils.rm_rf dir 
    end 
    end 

end 

使用しているので、慎重にクリーンアップタスクをテストして、[更新#2]

私は今、このアプローチを使用していますし、それが正常に動作します: http://jaredonline.github.io/blog/2012/05/16/sprockets-2-with-rails-2-dot-3/

+0

このレーキタスクの更新はありますか?私はあなたが最後の 'end'を省いたので、これが大きな.rakeファイルのほんの一部であるのか疑問に思っていました。また、どのようにjs/cssの圧縮と縮小を処理するための任意のポインターがありますか? – professormeowingtons

+0

最後の最後はまだそこにある、あなたがスクロールする必要があります、それはウィンドウに収まらない。しかし、私は今このアプローチを使用しており、それはうまくいきます:http://jaredonline.github.io/blog/2012/05/16/sprockets-2-with-rails-2-dot-3/ – Joris

+0

ありがとうJoris - 私は実際にそのソリューションを昨日見つけました。しかし、 'rake assets:precompile'タスクを実行しようとすると、' sprockets.rb'で追加したすべてのパスのすべてのファイルをコンパイルしようとします。何か案は?ここで私の質問を参照してください:http://stackoverflow.com/questions/17730155/sprockets-asset-pipeline-in-rails-2-3 – professormeowingtons