1

heroku の Rails アプリでアクション キャッシングを有効にしたいと考えています。私はdevelopment.rb設定しました:

  config.action_controller.perform_caching = true

ログで見る

Started GET "..." for 127.0.0.1 at 2013-05-17 14:03:25 +0400
...
Write fragment ... 
OR
Read fragment ... (0.2ms)

-> 本番環境に移行するために、memcache アドオンを 経由$heroku addons:add memcacheでインストールし、新しい gem を Gemfile: にインストールし、gem 'dalli'設定を : に変更しましたproduction.rb:

config.action_controller.perform_caching = true
config.cache_store = :dalli_store #, ENV['MEMCACHE_SERVERS'], { :namespace => 'myapp', :expires_in => 1.day, :compress => true }

また、これら 2 つのコメント付きパラメーターを有効にしようとしましたが、とにかくRead/Write fragment ...ログに断片が表示されず、アプリが認証されていることがわかりますが、キャッシュは常に欠落しています

Started GET "..." for 195.178.108.38 at 2013-05-17 09:54:19 +0000
Dalli/SASL authenticating as myapp%40heroku.com
Dalli/SASL: Authenticated
cache: [GET ...] miss

実行$heroku run console中 キャッシュがロードされていることを確認します。

irb(main):001:0> Rails.cache.read('color')
Dalli/SASL authenticating as myapp%40heroku.com
Dalli/SASL: Authenticated
=> nil
irb(main):002:0> Rails.cache.write('color', 'red')
=> true
irb(main):003:0> Rails.cache.read('color')
=> "red"

アクションキャッシングが機能しないのはなぜですか?

4

1 に答える 1