假设 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/