Rails是否缓存模板?

8
我认为是的,并且一些测试也指出了是的,但我想找到有关Rails在内存中缓存(未评估的)模板的文档。也就是说,对于任何.erb,.sass,.jbuilder等模板,Rails会:
1. 从文件中读取模板,仅一次。
2. 在需要时从内存中检索模板。
3. 在每次调用时将数据应用于模板,除非生成的输出被缓存。
所有的模板/缓存搜索和文档似乎都集中在第三点上。开发Rails标志可以启用/禁用类缓存。但是找到验证第一/第二点的文档似乎很难。Rails是否每次重新读取模板文件并依赖于操作系统级别的文件缓存呢?
3个回答

5

我有同样的问题并进行了一些搜索。

是的 - Rails会缓存模板。


1
请注意缓存使用本地变量作为键,因此我会说未计算的模板不会被缓存。

0
在生产环境中,如果你添加调用来这样做,它会进行缓存。但是,在开发模式下,它被禁用了,不过你可以通过更改以下行从 false 到 true 来在 config/environments/development.rb 文件中编辑它以在开发模式下进行缓存:
config.action_controller.perform_caching = false

在生产环境中,Rails 在视图缓存方面有三种主要方法(还有用于数据库缓存的 Rails 方法)。页面缓存、动作缓存和片段缓存。要在 Rails 中实现这些,可以使用某些辅助程序,例如控制器中的 caches_page 宏样式方法。这将把整个视图缓存到磁盘上,而不需要 Rails 调度程序进一步参与。仅当页面完全静态且没有动态内容时才应使用此方法。caches_action 和片段缓存提供了更细粒度的实现,可能占据了 Rails 的大部分用例。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接