0

Webアプリにはクライアント側のテンプレートを使用します。

しかし、生成するものはたくさんあります。テンプレートの生成には4〜5秒かかるため、テンプレート- cache(:action_suffix => 'tmpl_timeline') doをキャッシュするために使用します。

その結果、応答時間は改善されますが、プロジェクトを最初に訪問した後でのみです。このキャッシュtmpl_timelineをすべてのプロジェクトで共有したいと思います。

各プロジェクトには、次のような一意のURLがあります。domain.com/[:unique_hash]

コントローラのキャッシュのパスを変更できることはわかりましたが、それがどのように役立つかはわかりません。

4

1 に答える 1

0

さて、1日のテストの後、私は非常に見栄えの良い解決策を見つけました。

私はこのようなヘルパーを作りました

    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

これで、デプロイするたびにRailsキャッシュがクリーンアップされ、このテンプレートは、それを使用するすべてのビューに対してキャッシュされます。

于 2013-03-26T11:07:05.740 に答える