【发布时间】:2015-03-15 14:08:39
【问题描述】:
我正在用 ruby 编写一个简单的 Web 框架。我正在使用
渲染我的模板renderer = Haml::Engine.new(template_path, ...)
html_output = renderer.render(Object.new, params)
但这只给了我最后一次渲染的 html 输出。假设我有这样的观点
-if title.include? 'Admin Page'
=title
-else
%a
Test
在每个请求中,它都会重新渲染模板的 html 部分。有没有办法让这个模板的可缓存版本用于生产以摆脱重新渲染。在这里缓存纯 html 是不够的,因为标题可能会在请求中发生变化。
首先我认为这是不可能的,因为结果文件必须是 ruby 文件并且看起来像这样。
output = ''
if title.include? 'Admin Page'
output << title
else
output << '<a>Test</a>'
end
但经过搜索,我读到 Haml 文件可以被缓存,但我不知道如何实现这一点。我可以缓存 Haml 模板,如果可以,我该怎么做?我的方法在这个概念上是正确的还是我遗漏了什么?
【问题讨论】:
-
请详细说明您的问题。提供一个示例 Haml 模板,以及使用它的两三个调用,以及您希望缓存哪些部分,哪些部分必须重新计算。
标签: ruby templates caching haml