rails4+apache(passenger)でpage cacheがうまく動作しない→httd.conf設定追加
取り急ぎなんとか動いたぞメモ。
rails4 4.0.1.rc2+apache passengerでpage cacheがうまく動作しない。
weblickんときは動いてたやん…(TдT)
rails4からはpage&action cacheはgemで追加。Gemfileに
gem 'actionpack-action_caching'
gem 'actionpack-page_caching'
と書いて
$ bundle
キャッシュの格納場所はconfig/environments/production.rbとかに設定。
config.action_controller.perform_caching = true
config.action_controller.page_cache_directory = "#Rails.root.to_s}/public/cache"
そしてcontrollerに caches_page :indexとか書く。
うまくキャッシュされるけど
2回目以降のリクエストも毎回キャッシュを生成しおる…
キャッシュの意味ないじゃんΣ(ΦωΦ)
検索しまくったらapacheのmod_rewriteまわりいじるとうまく動作するっぽい。
/etc/httpd/conf/httd.confに以下を追加
...
#RailsAllowModRewrite On # ←再起動時にいらない言われた
RewriteEngine OnRewriteCond %{THE_REQUEST} ^(GET|HEAD)
RewriteCond %{REQUEST_URI} ^/([^.]+)$
RewriteCond %{DOCUMENT_ROOT}/cache/%1.html -f
RewriteRule ^/[^.]+$ /cache/%1.html [QSA,L]RewriteCond %{THE_REQUEST} ^(GET|HEAD)
RewriteCond %{DOCUMENT_ROOT}/cache/index.html -f
RewriteRule ^/$ /cache/index.html [QSA,L]