diff --git a/app/controllers/static_controller.rb b/app/controllers/static_controller.rb index 42d776e99a9..1641c019565 100644 --- a/app/controllers/static_controller.rb +++ b/app/controllers/static_controller.rb @@ -145,6 +145,8 @@ class StaticController < ApplicationController raise Discourse::NotFound end + expires_in 1.year, public: true, must_revalidate: false + if File.exists?(path) send_file(path, opts) else diff --git a/spec/controllers/static_controller_spec.rb b/spec/controllers/static_controller_spec.rb index b5b8eb0b748..2be919efa2f 100644 --- a/spec/controllers/static_controller_spec.rb +++ b/spec/controllers/static_controller_spec.rb @@ -2,6 +2,18 @@ require 'rails_helper' describe StaticController do + context 'brotli_asset' do + it 'has correct headers for brotli assets' do + FileUtils.mkdir_p(Rails.root + "public/assets/") + File.write(Rails.root + "public/assets/test.js.br", 'fake brotli file') + + get :brotli_asset, path: 'test.js' + + expect(response.status).to eq(200) + expect(response.headers["Cache-Control"]).to match(/public/) + end + end + context 'show' do before do post = create_post