diff --git a/CHANGELOG b/CHANGELOG
index 8154d4333d9f007721e42098414d24b7eafefd81..329ce74a5d511e0c6a7473e58cee8715f3171e2c 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,7 @@
 Please view this file on the master branch, on stable branches it's out of date.
 
 v 8.0.0 (unreleased)
+  - Fix emoji URLs in Markdown when relative_url_root is used (Stan Hu)
   - Omit filename in Content-Disposition header in raw file download to avoid RFC 6266 encoding issues (Stan HU)
   - Prevent anchors from being hidden by header (Stan Hu)
   - Fix bug where only the first 15 Bitbucket issues would be imported (Stan Hu)
diff --git a/lib/gitlab/markdown.rb b/lib/gitlab/markdown.rb
index 097caf67a6550ced012111db689f13e66902544b..ae5f2544691bd7ba415cf2da80cfc6a623351535 100644
--- a/lib/gitlab/markdown.rb
+++ b/lib/gitlab/markdown.rb
@@ -77,7 +77,7 @@ module Gitlab
         pipeline: options[:pipeline],
 
         # EmojiFilter
-        asset_root: Gitlab.config.gitlab.url,
+        asset_root: Gitlab.config.gitlab.base_url,
         asset_host: Gitlab::Application.config.asset_host,
 
         # TableOfContentsFilter
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index d0f1873ee2d2e8a19c9ed7326b981f0ccc289383..0780c4f3203fc47f4d2d0cadddce9c32f0207951 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -28,6 +28,7 @@ RSpec.configure do |config|
   config.include LoginHelpers,        type: :feature
   config.include LoginHelpers,        type: :request
   config.include StubConfiguration
+  config.include RelativeUrl,         type: feature
   config.include TestEnv
 
   config.infer_spec_type_from_file_location!
diff --git a/spec/support/matchers/markdown_matchers.rb b/spec/support/matchers/markdown_matchers.rb
index 9df226c3af888ea8b89e5efad81cf6500cfe713d..7500d0fdf80bbb0d7ce04d3cc384ba0cb7e1828d 100644
--- a/spec/support/matchers/markdown_matchers.rb
+++ b/spec/support/matchers/markdown_matchers.rb
@@ -27,6 +27,9 @@ module MarkdownMatchers
 
     match do |actual|
       expect(actual).to have_selector('img.emoji', count: 10)
+
+      image = actual.at_css('img.emoji')
+      expect(image['src'].to_s).to start_with(Gitlab.config.gitlab.url + '/assets')
     end
   end
 
diff --git a/spec/support/relative_url.rb b/spec/support/relative_url.rb
new file mode 100644
index 0000000000000000000000000000000000000000..72e3ccce75bc44d37f9b59bc08c544ec5c1eecbe
--- /dev/null
+++ b/spec/support/relative_url.rb
@@ -0,0 +1,8 @@
+# Fix route helpers in tests (e.g. root_path, ...)
+module RelativeUrl
+  extend ActiveSupport::Concern
+
+  included do
+    default_url_options[:script_name] = Rails.application.config.relative_url_root
+  end
+end