diff --git a/lib/email/styles.rb b/lib/email/styles.rb index c1965b7fde9..bc9c33581e0 100644 --- a/lib/email/styles.rb +++ b/lib/email/styles.rb @@ -20,7 +20,7 @@ module Email img['style'] = "max-width: 694px;" end - if img['src'][0] == "/" + if img['src'] =~ /^\/[^\/]/ img['src'] = "#{Discourse.base_url}#{img['src']}" end end diff --git a/spec/components/email/styles_spec.rb b/spec/components/email/styles_spec.rb index e845c5862e9..b3f22186145 100644 --- a/spec/components/email/styles_spec.rb +++ b/spec/components/email/styles_spec.rb @@ -40,6 +40,11 @@ describe Email::Styles do expect(frag.at("img")["src"]).to eq("#{Discourse.base_url}/some-image.png") end + it "it does not change protocol relative paths" do + frag = basic_fragment("") + expect(frag.at("img")["src"]).to eq("//www.discourse.com/some-image.gif") + end + it "strips classes and ids" do frag = basic_fragment("
") expect(frag.to_html).to eq("
")