diff --git a/src/server/http/index.js b/src/server/http/index.js
index dd71864d94083..1a2d800c6d7fd 100644
--- a/src/server/http/index.js
+++ b/src/server/http/index.js
@@ -1,5 +1,5 @@
-import { parse } from 'url';
import { format } from 'url';
+import { resolve } from 'path';
import _ from 'lodash';
import fs from 'fs';
import Boom from 'boom';
@@ -140,6 +140,9 @@ module.exports = async function (kbnServer, server, config) {
}
});
+ // Expose static assets (favicons).
+ server.exposeStaticDir('/ui/favicons/{path*}', resolve(__dirname, '../../ui/public/assets/favicons'));
+
kbnServer.mixin(versionCheckMixin);
return kbnServer.mixin(require('./xsrf'));
diff --git a/src/ui/public/favicons/android-chrome-192x192.png b/src/ui/public/assets/favicons/android-chrome-192x192.png
similarity index 100%
rename from src/ui/public/favicons/android-chrome-192x192.png
rename to src/ui/public/assets/favicons/android-chrome-192x192.png
diff --git a/src/ui/public/assets/favicons/android-chrome-256x256.png b/src/ui/public/assets/favicons/android-chrome-256x256.png
new file mode 100644
index 0000000000000..efa8a3105daf7
Binary files /dev/null and b/src/ui/public/assets/favicons/android-chrome-256x256.png differ
diff --git a/src/ui/public/favicons/apple-touch-icon.png b/src/ui/public/assets/favicons/apple-touch-icon.png
similarity index 100%
rename from src/ui/public/favicons/apple-touch-icon.png
rename to src/ui/public/assets/favicons/apple-touch-icon.png
diff --git a/src/ui/public/favicons/browserconfig.xml b/src/ui/public/assets/favicons/browserconfig.xml
similarity index 100%
rename from src/ui/public/favicons/browserconfig.xml
rename to src/ui/public/assets/favicons/browserconfig.xml
diff --git a/src/ui/public/favicons/favicon-16x16.png b/src/ui/public/assets/favicons/favicon-16x16.png
similarity index 100%
rename from src/ui/public/favicons/favicon-16x16.png
rename to src/ui/public/assets/favicons/favicon-16x16.png
diff --git a/src/ui/public/favicons/favicon-32x32.png b/src/ui/public/assets/favicons/favicon-32x32.png
similarity index 100%
rename from src/ui/public/favicons/favicon-32x32.png
rename to src/ui/public/assets/favicons/favicon-32x32.png
diff --git a/src/ui/public/favicons/favicon.ico b/src/ui/public/assets/favicons/favicon.ico
similarity index 100%
rename from src/ui/public/favicons/favicon.ico
rename to src/ui/public/assets/favicons/favicon.ico
diff --git a/src/ui/public/favicons/manifest.json b/src/ui/public/assets/favicons/manifest.json
similarity index 51%
rename from src/ui/public/favicons/manifest.json
rename to src/ui/public/assets/favicons/manifest.json
index 0d52ed7037762..9b4b46f382f35 100644
--- a/src/ui/public/favicons/manifest.json
+++ b/src/ui/public/assets/favicons/manifest.json
@@ -2,9 +2,14 @@
"name": "Kibana",
"icons": [
{
- "src": "\/android-chrome-192x192.png",
+ "src": "android-chrome-192x192.png",
"sizes": "192x192",
"type": "image\/png"
+ },
+ {
+ "src": "android-chrome-256x256.png",
+ "sizes": "256x256",
+ "type": "image\/png"
}
],
"theme_color": "#e8488b",
diff --git a/src/ui/public/favicons/mstile-150x150.png b/src/ui/public/assets/favicons/mstile-150x150.png
similarity index 100%
rename from src/ui/public/favicons/mstile-150x150.png
rename to src/ui/public/assets/favicons/mstile-150x150.png
diff --git a/src/ui/public/favicons/safari-pinned-tab.svg b/src/ui/public/assets/favicons/safari-pinned-tab.svg
similarity index 100%
rename from src/ui/public/favicons/safari-pinned-tab.svg
rename to src/ui/public/assets/favicons/safari-pinned-tab.svg
diff --git a/src/ui/public/chrome/chrome.js b/src/ui/public/chrome/chrome.js
index f60eb3b578b12..b24325b1f4059 100644
--- a/src/ui/public/chrome/chrome.js
+++ b/src/ui/public/chrome/chrome.js
@@ -1,11 +1,8 @@
-
import _ from 'lodash';
import angular from 'angular';
-
import metadata from 'ui/metadata';
import 'babel/polyfill';
-import $ from 'jquery';
import 'ui/timefilter';
import 'ui/notify';
import 'ui/private';
@@ -30,61 +27,6 @@ const internals = _.defaults(
}
);
-// These favicons were generated from http://realfavicongenerator.net/.
-const favicons = [{
- tag: '',
- attrs: {
- href: require('ui/favicons/favicon.ico'),
- rel: 'shortcut icon',
- },
-}, {
- tag: '',
- attrs: {
- href: require('ui/favicons/apple-touch-icon.png'),
- sizes: '180x180',
- rel: 'apple-touch-icon',
- },
-}, {
- tag: '',
- attrs: {
- href: require('ui/favicons/favicon-32x32.png'),
- type: 'image/png',
- sizes: '32x32',
- rel: 'icon',
- },
-}, {
- tag: '',
- attrs: {
- href: require('ui/favicons/favicon-16x16.png'),
- type: 'image/png',
- sizes: '16x16',
- rel: 'icon',
- },
-}, {
- tag: '',
- attrs: {
- href: require('ui/favicons/manifest.json'),
- rel: 'manifest',
- },
-}, {
- tag: '',
- attrs: {
- href: require('ui/favicons/safari-pinned-tab.svg'),
- color: '#e8488b',
- rel: 'mask-icon',
- },
-}, {
- tag: '',
- attrs: {
- name: 'theme-color',
- content: '#e8488b',
- },
-}];
-
-favicons.forEach(favicon => {
- $(favicon.tag).attr(favicon.attrs).appendTo('head');
-});
-
require('./api/apps')(chrome, internals);
require('./api/xsrf')(chrome, internals);
require('./api/nav')(chrome, internals);
diff --git a/src/ui/views/chrome.jade b/src/ui/views/chrome.jade
index 45f42d1086a07..bd641886f2f27 100644
--- a/src/ui/views/chrome.jade
+++ b/src/ui/views/chrome.jade
@@ -10,6 +10,33 @@ html(lang='en')
meta(http-equiv='X-UA-Compatible', content='IE=edge,chrome=1')
meta(name='viewport', content='width=device-width')
title Kibana
+
+ //- Favicons (generated from http://realfavicongenerator.net/)
+ link(
+ rel='apple-touch-icon' sizes='180x180' href='#{kibanaPayload.basePath}/ui/favicons/apple-touch-icon.png'
+ )
+ link(
+ rel='icon' type='image/png' href='#{kibanaPayload.basePath}/ui/favicons/favicon-32x32.png' sizes='32x32'
+ )
+ link(
+ rel='icon' type='image/png' href='#{kibanaPayload.basePath}/ui/favicons/favicon-16x16.png' sizes='16x16'
+ )
+ link(
+ rel='manifest' href='#{kibanaPayload.basePath}/ui/favicons/manifest.json'
+ )
+ link(
+ rel='mask-icon' href='#{kibanaPayload.basePath}/ui/favicons/safari-pinned-tab.svg' color='#e8488b'
+ )
+ link(
+ rel='shortcut icon' href='#{kibanaPayload.basePath}/ui/favicons/favicon.ico'
+ )
+ meta(
+ name='msapplication-config' content='#{kibanaPayload.basePath}/ui/favicons/browserconfig.xml'
+ )
+ meta(
+ name='theme-color' content='#ffffff'
+ )
+
block head
body(kbn-chrome, id='#{appName}-body')
kbn-initial-state(data=JSON.stringify(kibanaPayload))