我的rails應用程序每天抓取一堆xml feed,將它們加載到db中,然後將它們顯示在聚合中。我想我可以節省服務器內存,如果我只是輸出頁面作爲靜態文件,並讓他們直接由前端服務器(在我的情況下nginx)。我在一個IRC會議室詢問,並被告知不使用rails並使用rake任務創建文件。但是,我想知道最簡單的方法是什麼去做這件事。佈局,資產文件和內容顯然在鋼軌的不同位置,所以我想我需要結合佈局和內容,然後插入CSS/JavaScript。如何將我的Rails應用程序變成靜態內容?
歡迎任何想法/想法。
[解決]
我最終使用的例子從render_to_string from a rake task並作了一些調整,讓我的rake任務裏面下面的代碼:
views_path = Rails.root.to_s + "/app/views"
av = ActionView::Base.new(views_path)
av.class_eval do
include ApplicationHelper
end
products = Product.all
a = av.render(:template => "products/show", :layout => "layouts/application", :locals => { :@products => products })
這就使兩者的模板和佈局,並允許在模板中使用@products實例變量,就像使用控制器時一樣。
然後我只需要將渲染的輸出寫入文件。
感謝您的鏈接。看起來這樣會很好,但仍然在測試它。 – asahi