diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 480b242969d..9dbc7aef9bc 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -75,10 +75,17 @@ module ApplicationHelper path = "#{GlobalSetting.s3_cdn_url}#{path}" end - if is_brotli_req? - path = path.gsub(/\.([^.]+)$/, '.br.\1') - elsif is_gzip_req? - path = path.gsub(/\.([^.]+)$/, '.gz.\1') + # assets needed for theme testing are not compressed because they take a fair + # amount of time to compress (+30 seconds) during rebuilds/deploys when the + # vast majority of sites will never need them, so it makes more sense to serve + # them uncompressed instead of making everyone's rebuild/deploy take +30 more + # seconds. + if !script.start_with?("discourse/tests/") + if is_brotli_req? + path = path.gsub(/\.([^.]+)$/, '.br.\1') + elsif is_gzip_req? + path = path.gsub(/\.([^.]+)$/, '.gz.\1') + end end elsif GlobalSetting.cdn_url&.start_with?("https") && is_brotli_req? && Rails.env != "development" diff --git a/spec/helpers/application_helper_spec.rb b/spec/helpers/application_helper_spec.rb index 4a4c4002a60..ccc7842ef91 100644 --- a/spec/helpers/application_helper_spec.rb +++ b/spec/helpers/application_helper_spec.rb @@ -69,6 +69,12 @@ describe ApplicationHelper do expect(link).to eq(preload_link("https://s3cdn.com/assets/application.js")) end + + it "gives s3 cdn but without brotli/gzip extensions for theme tests assets" do + helper.request.env["HTTP_ACCEPT_ENCODING"] = 'gzip, br' + link = helper.preload_script('discourse/tests/theme_qunit_ember_jquery') + expect(link).to eq(preload_link("https://s3cdn.com/assets/discourse/tests/theme_qunit_ember_jquery.js")) + end end end