From 63d9d4f3010521eb6a2285e773d83b557e7c343f Mon Sep 17 00:00:00 2001 From: Sam Date: Tue, 15 Nov 2016 17:00:28 +1100 Subject: [PATCH] FIX: properly specify default on no cache on all resources --- app/controllers/application_controller.rb | 7 +++++++ spec/controllers/topics_controller_spec.rb | 1 + spec/controllers/user_avatars_controller_spec.rb | 1 + 3 files changed, 9 insertions(+) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index ec302c39666..223189b28df 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -45,6 +45,7 @@ class ApplicationController < ActionController::Base before_filter :check_xhr after_filter :add_readonly_header after_filter :perform_refresh_session + after_filter :dont_cache_page layout :set_layout @@ -64,6 +65,12 @@ class ApplicationController < ActionController::Base refresh_session(current_user) end + def dont_cache_page + if !response.headers["Cache-Control"] && response.cache_control.blank? + response.headers["Cache-Control"] = "no-store, must-revalidate, no-cache, private" + end + end + def slow_platform? request.user_agent =~ /Android/ end diff --git a/spec/controllers/topics_controller_spec.rb b/spec/controllers/topics_controller_spec.rb index ee523583bd2..7ee8aa42b37 100644 --- a/spec/controllers/topics_controller_spec.rb +++ b/spec/controllers/topics_controller_spec.rb @@ -529,6 +529,7 @@ describe TopicsController do get :show, topic_id: topic.id, slug: topic.slug expect(response).to be_success expect(css_select("link[rel=canonical]").length).to eq(1) + expect(response.headers["Cache-Control"]).to eq("no-store, must-revalidate, no-cache, private") end end diff --git a/spec/controllers/user_avatars_controller_spec.rb b/spec/controllers/user_avatars_controller_spec.rb index 55a3272da8e..7c40e2ba72a 100644 --- a/spec/controllers/user_avatars_controller_spec.rb +++ b/spec/controllers/user_avatars_controller_spec.rb @@ -46,6 +46,7 @@ describe UserAvatarsController do get :show, size: 98, username: user.username, version: upload.id, hostname: 'default' expect(response.body).to eq("image") + expect(response.headers["Cache-Control"]).to eq('max-age=31557600, public') end it 'serves image even if size missing and its in local mode' do