DNS Prefetching + Preconnect of assets_host (CDN Domain)
This commit is contained in:
parent
2fbafe1a41
commit
f7ac538425
3 changed files with 43 additions and 0 deletions
|
@ -3,6 +3,11 @@
|
||||||
- site_name = "GitLab"
|
- site_name = "GitLab"
|
||||||
%head{ prefix: "og: http://ogp.me/ns#" }
|
%head{ prefix: "og: http://ogp.me/ns#" }
|
||||||
%meta{ charset: "utf-8" }
|
%meta{ charset: "utf-8" }
|
||||||
|
|
||||||
|
- if Feature.enabled?('asset_host_prefetch') && ActionController::Base.asset_host
|
||||||
|
%link{ rel: 'dns-prefetch', href: ActionController::Base.asset_host }
|
||||||
|
%link{ rel: 'preconnnect', href: ActionController::Base.asset_host, crossorigin: '' }
|
||||||
|
|
||||||
%meta{ 'http-equiv' => 'X-UA-Compatible', content: 'IE=edge' }
|
%meta{ 'http-equiv' => 'X-UA-Compatible', content: 'IE=edge' }
|
||||||
|
|
||||||
-# Open Graph - http://ogp.me/
|
-# Open Graph - http://ogp.me/
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
title: DNS prefetching if asset_host for CDN hosting is set
|
||||||
|
merge_request: 20781
|
||||||
|
author:
|
||||||
|
type: performance
|
|
@ -29,6 +29,39 @@ describe 'layouts/_head' do
|
||||||
expect(rendered).to match(%{content="foo" http-equiv="refresh"})
|
expect(rendered).to match(%{content="foo" http-equiv="refresh"})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'when an asset_host is set and feature is activated in the config it will' do
|
||||||
|
let(:asset_host) { 'http://assets' }
|
||||||
|
|
||||||
|
before do
|
||||||
|
stub_feature_flags(asset_host_prefetch: true)
|
||||||
|
allow(ActionController::Base).to receive(:asset_host).and_return(asset_host)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'add a link dns-prefetch tag' do
|
||||||
|
render
|
||||||
|
expect(rendered).to match('<link href="http://assets" rel="dns-prefetch">')
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'add a link preconnect tag' do
|
||||||
|
render
|
||||||
|
expect(rendered).to match('<link crossorigin="" href="http://assets" rel="preconnnect">')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when an asset_host is set and feature is not activated in the config it will' do
|
||||||
|
let(:asset_host) { 'http://assets' }
|
||||||
|
|
||||||
|
before do
|
||||||
|
stub_feature_flags(asset_host_prefetch: false)
|
||||||
|
allow(ActionController::Base).to receive(:asset_host).and_return(asset_host)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'not add a link dns-prefetch tag' do
|
||||||
|
render
|
||||||
|
expect(rendered).not_to match('<link href="http://assets" rel="dns-prefetch">')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def stub_helper_with_safe_string(method)
|
def stub_helper_with_safe_string(method)
|
||||||
allow_any_instance_of(PageLayoutHelper).to receive(method)
|
allow_any_instance_of(PageLayoutHelper).to receive(method)
|
||||||
.and_return(%q{foo" http-equiv="refresh}.html_safe)
|
.and_return(%q{foo" http-equiv="refresh}.html_safe)
|
||||||
|
|
Loading…
Reference in a new issue