Fix emoji paths in relative root configurations
If a site specifies a relative URL root, emoji files would omit the path from the URL, leading to lots of 404s. Closes #15642
This commit is contained in:
parent
6c0d3b4cf3
commit
4bfe10d5f9
2 changed files with 25 additions and 1 deletions
|
@ -66,8 +66,17 @@ module Gitlab
|
|||
def self.urls
|
||||
@urls ||= begin
|
||||
path = File.join(Rails.root, 'fixtures', 'emojis', 'digests.json')
|
||||
# Construct the full asset path ourselves because
|
||||
# ActionView::Helpers::AssetUrlHelper.asset_url is slow for hundreds
|
||||
# of entries since it has to do a lot of extra work (e.g. regexps).
|
||||
prefix = Gitlab::Application.config.assets.prefix
|
||||
digest = Gitlab::Application.config.assets.digest
|
||||
base =
|
||||
if defined?(Gitlab::Application.config.relative_url_root) && Gitlab::Application.config.relative_url_root
|
||||
Gitlab::Application.config.relative_url_root
|
||||
else
|
||||
''
|
||||
end
|
||||
|
||||
JSON.parse(File.read(path)).map do |hash|
|
||||
if digest
|
||||
|
@ -76,7 +85,7 @@ module Gitlab
|
|||
fname = hash['unicode']
|
||||
end
|
||||
|
||||
{ name: hash['name'], path: "#{prefix}/#{fname}.png" }
|
||||
{ name: hash['name'], path: File.join(base, prefix, "#{fname}.png") }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -2,6 +2,10 @@ require 'spec_helper'
|
|||
|
||||
describe Gitlab::AwardEmoji do
|
||||
describe '.urls' do
|
||||
after do
|
||||
Gitlab::AwardEmoji.instance_variable_set(:@urls, nil)
|
||||
end
|
||||
|
||||
subject { Gitlab::AwardEmoji.urls }
|
||||
|
||||
it { is_expected.to be_an_instance_of(Array) }
|
||||
|
@ -15,6 +19,17 @@ describe Gitlab::AwardEmoji do
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'handles relative root' do
|
||||
it 'includes the full path' do
|
||||
allow(Gitlab::Application.config).to receive(:relative_url_root).and_return('/gitlab')
|
||||
|
||||
subject.each do |hash|
|
||||
expect(hash[:name]).to be_an_instance_of(String)
|
||||
expect(hash[:path]).to start_with('/gitlab')
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '.emoji_by_category' do
|
||||
|
|
Loading…
Reference in a new issue