2014-06-22 38 views
1

爲了提高我的Rails的表現4.0.2應用程序,我想緩存我的一些靜態頁面的輸出:在Rails 4中緩存靜態頁面的最佳方式是什麼?

class PagesController < ApplicationController 

    def home 
    end 

    def about_us 
    end 

    def contact 
    end 

end 

Rails Guide on Caching它說,「頁面緩存已移出Rails 4「並搬入寶石。但是,它在gem description中表示,它只能在Rails 4.1之前保留。一些other observers也建議不要使用頁面緩存並代之以認可Russian doll caching

那麼緩存一堆永遠不會實際打到數據庫的靜態頁面的最佳方式是什麼,並且只有在用戶登錄後纔會更改(略)?

感謝您的任何建議。

+0

Tintin81,我面臨同樣的問題的時刻。你的解決方案是什麼?我猜想某種HTTP緩存,但是如何以及何時過期頁面? –

回答

3

儘管在動態/數據庫驅動的頁面中顯然更易於看到好處,但您仍然可以對靜態頁面使用片段緩存。如果你有很多局部渲染或昂貴的視圖邏輯,這是值得考慮的。只是包裝你的頁面與模板:

# about_us.html.erb 
<% cache 'about_us' do %> 
    ... 
<% end %> 

第一次你打的環境下config.action_controller.perform_caching = true,它會產生的片段(在這種情況下是你的整個頁面)的頁面,而且將投放下次你重新加載它。緩存當模板改變摘要將失效:

模板消化了加緩存鍵被 計算採取的整個模板文件的內容的MD5。此 可確保在更改 模板文件時,緩存將自動失效。

http://api.rubyonrails.org/classes/ActionView/Helpers/CacheHelper.html

相關問題