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))