diff --git a/lib/core/meta.js b/lib/core/meta.js index fee94285f1..96bc215b5e 100644 --- a/lib/core/meta.js +++ b/lib/core/meta.js @@ -55,18 +55,23 @@ export default class MetaRenderer { meta.BODY_ATTRS = m.bodyAttrs.text() // HEAD tags meta.HEAD = m.meta.text() + m.title.text() + m.link.text() + m.style.text() + m.script.text() + m.noscript.text() + // Resources Hints + meta.resourceHints = '' // Resource Hints const clientManifest = this.renderer.resources.clientManifest if (this.options.render.resourceHints && clientManifest) { const publicPath = clientManifest.publicPath || '/_nuxt/' // Pre-Load initial resources if (Array.isArray(clientManifest.initial)) { - meta.HEAD += clientManifest.initial.map(r => ``).join('') + meta.resourceHints += clientManifest.initial.map(r => ``).join('') } - // Pre-Fetch async resources if (Array.isArray(clientManifest.async)) { - meta.HEAD += clientManifest.async.map(r => ``).join('') + meta.resourceHints += clientManifest.async.map(r => ``).join('') + } + // Add them to HEAD + if (meta.resourceHints) { + meta.HEAD += meta.resourceHints } } diff --git a/lib/core/renderer.js b/lib/core/renderer.js index 4d103cb9cf..fac537f83c 100644 --- a/lib/core/renderer.js +++ b/lib/core/renderer.js @@ -453,7 +453,7 @@ export default class Renderer extends Tapable { // Basic response if SSR is disabled or spa data provided const spa = context.spa || (context.res && context.res.spa) if (this.noSSR || spa) { - const { HTML_ATTRS, BODY_ATTRS, HEAD } = await this.metaRenderer.render(context) + const { HTML_ATTRS, BODY_ATTRS, HEAD, resourceHints } = await this.metaRenderer.render(context) const APP = `
${this.resources.loadingHTML}
` const data = { @@ -465,7 +465,7 @@ export default class Renderer extends Tapable { const html = this.resources.spaTemplate(data) - return { html } + return { html, resourceHints } } // Call renderToString from the bundleRenderer and generate the HTML (will update the context as well)