什么是在Rails 4中缓存静态页面的最佳方法?

时间:2014-06-22 17:44:45

标签: ruby-on-rails caching ruby-on-rails-4

为了提高我的Rails 4.0.2应用程序的性能,我想缓存一些静态页面的输出:

class PagesController < ApplicationController

  def home
  end

  def about_us
  end

  def contact
  end

end

Rails Guide on Caching中,它表示“页面缓存已从Rails 4中删除”并移至gem中。然而,在它所说的gem description中,它只会在Rails 4.1之前保留。一些other observers也建议不要使用页面缓存并代之以Russian doll caching

那么缓存一堆永远不会真正命中数据库的静态页面的最佳方法是什么?如果用户登录则只会稍微改变一下?

感谢您的任何建议。

1 个答案:

答案 0 :(得分: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