ruby-on-rails - Rails 是否每次在生产中点击它时都会重新编译整个 erb/haml View ?

标签 ruby-on-rails ruby-on-rails-4 haml erb

假设 View 在 erb/haml 中,但它是静态的(其中没有任何动态部分),Rails 是在每次有人点击它时重新编译该 View ,还是在有人点击它后缓存 html?

一个后续问题:如果我有一个包含一些动态部分的 View ,Rails 是只重新编译 View 的动态部分还是重新编译整个页面?

我正在运行 Rails 4。

最佳答案

Rails 评估每个请求的 View 文件和部分。这就是 html 片段缓存如此有值(value)的原因。

Caching with Rails在 Rails 指南中。

通常你会使用 Rails 的缓存来缓存一个 html 片段,这样它就不需要在每个请求上重新渲染。这是一个 Haml 示例:

- cache "key-name-for-static-content" do
  .some-html
    some content

DHH's How Key-Based Cache Expiration Works用于使用模型的基于键的缓存。

对于高级用途,我写了 cache_rocket帮助缓存围绕部分动态内容的静态内容。

关于ruby-on-rails - Rails 是否每次在生产中点击它时都会重新编译整个 erb/haml View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23273239/

相关文章:

ruby-on-rails - Rails + Vue.js - 使用 Ajax 更新 Vue 组件

ruby-on-rails - 在 Ruby on Rails 中的多对多关系中,如何使用父表表单中的数据在连接表中创建记录?

ruby-on-rails-3 - 在 js.erb 内渲染部分内容。是否可以获取原始字符串以便去除空格?

jquery - Rails 4 尝试将 CSS 属性连接到 View

ruby-on-rails - ruby on rails 的内部结构

ruby-on-rails - Ruby on Rails 错误 :AssociationRelation is not an ActiveModel-compatible object. 它必须实现:to_partial_path

sql - rails 方法从同一个表中获取不同类型的记录

sql - 了解 Rails + postgresql 中的随机排序

ruby - 如何在haml中使用循环内的变量?

ruby-on-rails - 将 content_tag 与 HAML 结合使用