gpt4 book ai didi

ruby-on-rails - 如何为访问者向我的 Rails 应用程序添加页面缓存?

转载 作者:行者123 更新时间:2023-12-04 06:19:06 25 4
gpt4 key购买 nike

假设我在 Heroku 上有一个包含许多帖子的 Rails 4.2 站点。查看帖子时,应用程序会访问数据库以获取帖子的数据和来自其他模型的关联数据。 访问者(未登录用户)到我的网站应该看到没有任何自定义的帖子,因此显示这些页面应该不需要访问数据库。我如何为我站点的所有访问者设置简单的页面或操作缓存(或等效缓存),以便跳过数据库?我是否也可以让 CDN 接管呈现这些页面?

最佳答案

首先,请查看 the Rails caching guide .页面和操作缓存都已从 Rails 中删除。

您可以尝试片段缓存,它会抓取帖子生成的 HTML 并将其存储起来,但您需要一个基于是否有 current_user 的条件。

一个 super 简单的版本可能是这样的:

app/views/posts/show.html.erb

<% cache_unless (current_user, @post) do %>
<%= @post.body %>
<% end %>

如果该帖子存在缓存,cache 方法将是一个读取 操作,并且它将是一个生成和写入如果该缓存不存在则采取行动。

使用 ActiveRecord 对象进行缓存会创建一个默认包含 updated_at 的键,因此如果帖子发生变化,第一个加载该帖子的访问者将有更长的等待时间,并且每个后续访问者都会得到缓存的好处。

至于您的其他问题,还有许多其他基于 Ruby 的工具可用于提供静态页面,而对所有这些工具的审查超出了我的知识范围,并且可能超出了该问题的范围。 :)

关于ruby-on-rails - 如何为访问者向我的 Rails 应用程序添加页面缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33249622/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com