2013-03-25 160 views
0

我们为我们的网络应用使用客户端模板。我们有的东西来生成。生成模板需要4到5秒,所以我们使用- cache(:action_suffix => 'tmpl_timeline') do来缓存它。共享缓存共享模板?

这会导致响应时间的改善,但仅在项目第一次访问之后。我们想分享这个tmpl_timeline的缓存给我们所有的项目。

每个项目都有一个唯一的URL,如:domain.com/[:unique_hash]

我已经看到了,我们可以修改在控制器高速缓存中的路径,但我真的不知道怎么能帮助我。

+0

我真的不明白的问题每一个单一视图。 tmpl_timeline是您希望在各种视图中共享的部分内容吗?此外,项目端点是否为模板提供了不同的数据? – johnkoht 2013-03-25 16:15:52

+0

看起来,rails为每个项目生成类似'views%2Fdomain.com%2 [:unique_hash]%3Faction_suffix%3Dtmpl_timeline'的东西。可能会改变'domain.com/controller name/action'的路径会做诡计吗?看起来有风险的没有?对于这个模板,有一些国际化但与项目数据无关 – iRyusa 2013-03-25 16:23:07

回答

0

好的,经过一天的测试,我已经找到了相当不错的解决方案。

我做了一个帮手这样

def template_cache 
     if !Rails.cache.exist? 'tmpl_timeline_' + I18n.locale.to_s 
     Rails.cache.write('tmpl_timeline_' + I18n.locale.to_s, render('shared/templates_timeline')) 
     end 

     Rails.cache.read('tmpl_timeline_' + I18n.locale.to_s).html_safe 
    end 

现在每次一个部署我干净轨高速缓存,该模板缓存为使用它的