回答
沒有一種簡單的方法。資產管道依賴於Rails 3.1.x中的幾個體系結構,這些體系結構在Rails 2.3中不存在。
您可以嘗試使用Davis Frank outlines here的方法,但要警告它需要多個步驟。
如果您正在尋找資產的源代碼:預編譯rake任務,你可以在這裏找到:
https://github.com/rails/rails/blob/3-1-stable/actionpack/lib/sprockets/assets.rake
不要指望它來運行的,是當你把它複製到你的導軌/任務在你的軌道2.3.14應用與鏈輪和鏈輪 - 助手寶石。
[更新]
我爲在軌道2.3.14使用簡單的預編譯器rake任務(沒有任何JavaScript壓縮)。您可能需要更改一些內容,具體取決於您的配置。仔細測試清理任務,因爲它使用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/
你有這個rake任務的更新嗎?我注意到你遺漏了最後的'end',所以我想知道這是否只是一個較大的.rake文件的一小部分。另外,你有沒有關於如何處理js/css壓縮和縮小的指針? – professormeowingtons 2013-07-17 20:20:43
最後的結局仍然存在,你必須向下滾動,它不適合窗戶。不過,我現在使用這種方法,並且工作正常:http://jaredonline.github.io/blog/2012/05/16/sprockets-2-with-rails-2-dot-3/ – Joris 2013-07-18 21:50:18
謝謝Joris - 我昨天實際上找到了這個解決方案,它非常棒。但是,當我嘗試運行'rake assets:precompile'任務時,它會嘗試編譯我在'sprockets.rb'中添加的所有路徑中的所有文件。有任何想法嗎?在這裏看到我的問題:http://stackoverflow.com/questions/17730155/sprockets-asset-pipeline-in-rails-2-3 – professormeowingtons 2013-07-18 21:56:12
- 1. 滑軌資產管道:不預編譯
- 2. Rails資產管道未預編譯
- 3. Sass在Rails上沒有預編譯3.1資產管道,資產:預編譯Rake任務
- 4. 資產預編譯
- 5. Heroku的軌道上資產預編譯
- 6. Rails資產管道 - 編譯jQuery UI資產的問題
- 7. CSS預編譯的資產
- 8. Rails的生產預編譯資產
- 9. Heroku軌道預編譯資產
- 10. 資產:預編譯錯誤軌道
- 11. rails 4資產管道供應商資產圖像未被預編譯
- 12. 資產管道只編譯JavaScript文件
- 13. 資產預編譯不編譯其他mime_types資產
- 14. Capistrano編譯資產錯誤 - 資產:預編譯:nondigest?
- 15. 預編譯資產和非編譯資產
- 16. 資產管道
- 17. 資產預編譯錯誤
- 18. Rails 3.2資產:預編譯
- 19. 耙資產:預編譯
- 20. 預編譯軌AngularJS資產
- 21. 無法預編譯資產
- 22. Rails 3.1資產預編譯
- 23. 預編譯的資產在生產軌道4,5的應用
- 24. 的Rails 3.2.3資產預編譯管道無助
- 25. 部署到heroku時的資產管道預編譯問題
- 26. 不預編譯所需文件的資產管道
- 27. 資產管道中的預編譯HTML頁面
- 28. Rails:生產資產:預編譯錯誤
- 29. 直接鏈接到資產管道中的編譯資源?
- 30. Rails 3 - 資產管道 - 緩存資產
我緊接着這篇文章,但沒有解釋如何讓這個任務工作... – astropanic 2012-01-27 14:12:52
這是不正確的;他在第7步中特別解釋了這一點:「Rails 3.1提供資源:預編譯以用作部署過程的一部分生成一個空的Rails 3.1應用程序並將其複製到lib/tasks。將config.ru中的Sprockets配置複製到這個任務。」 – 2012-01-27 14:14:27
如果您對本文有任何疑問,最好的地方是作者自己:http://pivotallabs.com/users/dwfrank/profile – 2012-01-27 14:32:50