diff --git a/app/services/inline_uploads.rb b/app/services/inline_uploads.rb index 7a3204346e4..039d5f37738 100644 --- a/app/services/inline_uploads.rb +++ b/app/services/inline_uploads.rb @@ -278,7 +278,7 @@ class InlineUploads /(upload:\/\/([a-zA-Z0-9]+)[a-zA-Z0-9\.]*)/, /(\/uploads\/short-url\/([a-zA-Z0-9]+)[a-zA-Z0-9\.]*)/, /(#{base_url}\/uploads\/short-url\/([a-zA-Z0-9]+)[a-zA-Z0-9\.]*)/, - /(\/uploads\/#{db}#{UPLOAD_REGEXP_PATTERN})/, + /(#{GlobalSetting.relative_url_root}\/uploads\/#{db}#{UPLOAD_REGEXP_PATTERN})/, /(#{base_url}\/uploads\/#{db}#{UPLOAD_REGEXP_PATTERN})/, ] diff --git a/spec/services/inline_uploads_spec.rb b/spec/services/inline_uploads_spec.rb index 9a39d93e2c7..41646c341ea 100644 --- a/spec/services/inline_uploads_spec.rb +++ b/spec/services/inline_uploads_spec.rb @@ -206,6 +206,28 @@ RSpec.describe InlineUploads do MD end + context "subfolder" do + before do + global_setting :relative_url_root, "/community" + ActionController::Base.config.relative_url_root = "/community" + end + + after do + ActionController::Base.config.relative_url_root = nil + end + + it "should correct subfolder images" do + + md = <<~MD + + MD + + expect(InlineUploads.process(md)).to eq(<<~MD) + ![](#{upload.short_url}) + MD + end + end + it "should correct raw image URLs to the short url and paths" do md = <<~MD #{Discourse.base_url}#{upload.url}