【问题标题】:What's the best way to cache static pages in Rails 4?在 Rails 4 中缓存静态页面的最佳方法是什么?
【发布时间】:2014-06-23 23:23:44
【问题描述】:

为了提高我的 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

那么,缓存一堆静态页面的最佳方法是什么?这些页面永远不会真正访问数据库,并且只有在用户登录时才会(轻微地)改变?

感谢您的任何建议。

【问题讨论】:

  • Tintin81,我现在面临同样的问题。你的解决方案是什么?我猜是某种 HTTP 缓存,但是如何以及何时使页面过期?

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


【解决方案1】:

您仍然可以对静态页面使用片段缓存,尽管动态/数据库驱动页面的好处显然更加明显。如果您有很多部分被渲染或昂贵的视图逻辑,那么值得考虑这样做。只需将您的页面模板包装为:

# 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-19
    • 2010-09-06
    • 1970-01-01
    • 2013-03-03
    • 1970-01-01
    • 1970-01-01
    • 2019-02-24
    相关资源
    最近更新 更多