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"
アクションキャッシングが機能しないのはなぜですか?