ruby on rails - Actionpack page caching rendered views on every request -


i try use actionpack page caching static page. if understand work 'actionpack page caching' first request gets rails. rendered views, , html stored in cache public/deploy/...

a second similar request not reach rails. views not renderd. page taken cache.

but in log looks different.

"first request"

    i, [2013-08-16t12:24:43.591000 #16835]  info -- :   rendered init/scene.html.erb within layouts/application (4.0ms)     i, [2013-08-16t12:24:43.615000 #16835]  info -- :   rendered layouts/_server_params.html.erb (4.0ms)     i, [2013-08-16t12:24:43.624000 #16835]  info -- :   rendered windows/_login_without_social_window.html.erb (2.0ms)     i, [2013-08-16t12:24:43.661000 #16835]  info -- :   rendered windows/_choice_base_career_window.html.erb (34.0ms)     i, [2013-08-16t12:24:43.687000 #16835]  info -- :   rendered windows/_auth_window.html.erb (21.0ms)     i, [2013-08-16t12:24:43.691000 #16835]  info -- :   rendered windows/_free_teams_window.erb (2.0ms)     i, [2013-08-16t12:24:43.692000 #16835]  info -- :   rendered layouts/_windows.html.erb (74.0ms)     i, [2013-08-16t12:24:43.775000 #16835]  info -- :   rendered layouts/_bottom_menu.html.erb (80.0ms)     i, [2013-08-16t12:24:43.780000 #16835]  info -- : write page /home/pri/test/public/deploy/init/load_app.html (1.0ms)     i, [2013-08-16t12:24:43.782000 #16835]  info -- : completed 200 ok in 208ms (views: 200.0ms | activerecord: 0.0ms)     i, [2013-08-16t12:24:49.070000 #16835]  info -- : started "/init/load_app" 127.0.0.1 @ 2013-08-16 12:24:49 +0400     i, [2013-08-16t12:24:49.088000 #16835]  info -- : processing initcontroller#load_app html 

"second request"

    i, [2013-08-16t12:24:49.096000 #16835]  info -- :   rendered init/scene.html.erb within layouts/application (1.0ms)     i, [2013-08-16t12:24:49.108000 #16835]  info -- :   rendered layouts/_server_params.html.erb (2.0ms)     i, [2013-08-16t12:24:49.112000 #16835]  info -- :   rendered windows/_login_without_social_window.html.erb (1.0ms)     i, [2013-08-16t12:24:49.124000 #16835]  info -- :   rendered windows/_choice_base_career_window.html.erb (10.0ms)     i, [2013-08-16t12:24:49.138000 #16835]  info -- :   rendered windows/_auth_window.html.erb (11.0ms)     i, [2013-08-16t12:24:49.140000 #16835]  info -- :   rendered windows/_free_teams_window.erb (1.0ms)     i, [2013-08-16t12:24:49.142000 #16835]  info -- :   rendered layouts/_windows.html.erb (31.0ms)     i, [2013-08-16t12:24:49.161000 #16835]  info -- :   rendered layouts/_bottom_menu.html.erb (16.0ms)     i, [2013-08-16t12:24:49.165000 #16835]  info -- : write page /home/pri/test/public/deploy/init/load_app.html (3.0ms)     i, [2013-08-16t12:24:49.167000 #16835]  info -- : completed 200 ok in 76ms (views: 70.0ms | activerecord: 0.0ms) 

in requests views rendered , cache page overwrited.

i use: rails 4.0.0

jruby

puma server

production mode

start server - rails_env=production rails s puma

my production.rb

    resfm::application.configure        config.cache_classes = true       config.eager_load = true       config.consider_all_requests_local       = false       config.action_controller.perform_caching = true       config.cache_store = :dalli_store        config.assets.js_compressor = :uglifier       config.assets.css_compressor = :sass        config.assets.compile = false       config.assets.digest = true       config.assets.version = '1.0'       config.assets.debug = false        config.log_level = :info       config.i18n.fallbacks = true       config.active_support.deprecation = :notify       config.log_formatter = ::logger::formatter.new        # cache static pages       config.action_controller.page_cache_directory = "#{rails.root.to_s}/public/deploy"       config.serve_static_assets = true        #cdn google servers       config.asset_host = 'http://resassets.appspot.com'     end 

in controller use

caches_page :load_app def load_app  end 

and root url.

my gemfile

    gem 'rails', '4.0.0'     gem 'activerecord-jdbcpostgresql-adapter', '~>1.3.0.beta2'     gem 'dalli'     gem 'jquery-ui-rails'     gem 'jquery-rails'      group :assets       gem 'coffee-rails', '~> 4.0.0'       gem 'uglifier', '>= 1.3.0'       gem 'therubyrhino'       gem 'execjs'     end      group :development         gem 'annotate'         gem 'puma'     end      gem 'dimensions-rails'     gem 'sass-rails', '~> 4.0.0'      group :production       gem 'rack-cache'       gem 'actionpack-page_caching'     end 

please me understand wrong.

when using page caching should instruct webserver serve cached pages written in public directory. idea if normal path request /foo/bar.html cached copy should stored in rails.root/public/foo/bar.html. way request never hits rails application.

when changing storage path public/deploy have done, should take care point webserver directory serve files there. don't think puma handles that, should handle in frontend server (like apache or nginx).

having said that, page caching removed rails 4 reason, prehaps should russian doll caching it's more flexible , easy use.


Comments

Popular posts from this blog

assembly - 8086 TASM: Illegal Indexing Mode -

Java, LWJGL, OpenGL 1.1, decoding BufferedImage to Bytebuffer and binding to OpenGL across classes -

javascript - addthis share facebook and google+ url -