在大型应用程序中使用config.cache_classes = true缓存Slim模板

时间:2014-11-19 20:53:45

标签: ruby-on-rails caching ruby-on-rails-4 slim-lang

我遇到了最令人困惑的问题。

使用:

rails 4.1.7
slim 2.1.0
virtualbox: with application files mounted from hostos to guestos.

问题恰巧是我们的应用程序变得相当大,并且重新加载所有代码以获取到达请求 非常耗时。 Esp,我们的前端开发人员。

问题的核心是:

config.cache_classes

如果将其设置为false,则rails不会缓存任何类,并在每次请求时重新加载它们,对开发人员有利,完全没有意义 对于前端开发人员,因为他们只修改模板和CSS。

对于前端开发人员,我想设置config.cache_classes = true。

然后,还会缓存苗条模板文件。

当我减少代码(hack和slash)直到我有一个可呈现的可调试示例时,问题就消失了。即使config.cache_classes = true,模板仍然是RELOADED。

因此看来:

  • 大型应用程序+ config.cache_classes(true)=模板不重新加载
  • 小应用程序+ config.cache_classes(true)=模板重新加载

    1. 有没有人知道如何强制使用超薄模板,只需要重新加载超薄模板以获取到达请求。
    2. OR:当config.cache_classes = false
    3. 时,减少重新加载的代码量

我目前的想法是,当rails重新加载所有类时,slim正在为每个文件/模板创建类,并在请求之间擦除。但是,在小型测试用例应用程序中,这并不是真的。

1 个答案:

答案 0 :(得分:1)

  

config.action_view.cache_template_loading控制是否   应在每个请求上重新加载模板。默认为任何东西   为config.cache_classes设置。

这就是原因。

只需设置所需的值(分别为true和false),然后就可以了。

http://guides.rubyonrails.org/configuring.html#rails-general-configuration