From d44deb45f34459f4653efc549579b6657edcf2fd Mon Sep 17 00:00:00 2001 From: Penar Musaraj Date: Tue, 20 Apr 2021 13:25:35 -0400 Subject: [PATCH] FIX: Use CDN urls for theme uploads (#12769) --- app/models/theme.rb | 4 ++-- spec/models/theme_spec.rb | 13 +++++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/app/models/theme.rb b/app/models/theme.rb index 63ab1024822..c396c831f89 100644 --- a/app/models/theme.rb +++ b/app/models/theme.rb @@ -128,7 +128,7 @@ class Theme < ActiveRecord::Base SvgSprite.expire_cache end - BASE_COMPILER_VERSION = 48 + BASE_COMPILER_VERSION = 49 def self.compiler_version get_set_cache "compiler_version" do dependencies = [ @@ -493,7 +493,7 @@ class Theme < ActiveRecord::Base theme_uploads = {} upload_fields.each do |field| - theme_uploads[field.name] = field.upload.url + theme_uploads[field.name] = Discourse.store.cdn_url(field.upload.url) end hash['theme_uploads'] = theme_uploads if theme_uploads.present? diff --git a/spec/models/theme_spec.rb b/spec/models/theme_spec.rb index 997bedb4be3..d9b5df23e26 100644 --- a/spec/models/theme_spec.rb +++ b/spec/models/theme_spec.rb @@ -518,6 +518,19 @@ HTML expect(json["theme_uploads"]["bob"]).to eq(upload.url) end + it 'uses CDN url for theme_uploads in settings' do + set_cdn_url("http://cdn.localhost") + Theme.destroy_all + + upload = UploadCreator.new(file_from_fixtures("logo.png"), "logo.png").create_for(-1) + theme.set_field(type: :theme_upload_var, target: :common, name: "bob", upload_id: upload.id) + theme.save! + + json = JSON.parse(cached_settings(theme.id)) + + expect(json["theme_uploads"]["bob"]).to eq("http://cdn.localhost#{upload.url}") + end + it 'handles settings cache correctly' do Theme.destroy_all