diff --git a/lib/head.js b/lib/head.js index 703fb81c0c1faf5e9782bcf12cf956fda80b9620..ea580942b5c661bb1635c9735895291c3f56f516 100644 --- a/lib/head.js +++ b/lib/head.js @@ -11,6 +11,10 @@ class Head extends React.Component { } } +export function defaultHead () { + return [] +} + function reduceComponents (components) { return components .map((c) => c.props.children) @@ -18,6 +22,7 @@ function reduceComponents (components) { .map((children) => React.Children.toArray(children)) .reduce((a, b) => a.concat(b), []) .reverse() + .concat(...defaultHead()) .filter(unique()) .reverse() .map((c) => { diff --git a/server/render.js b/server/render.js index 777a9f35ac9d89ecff7f33c0451a3d5bf273d4e0..51fb324ab371390af768a1a6a492210961c1e8bf 100644 --- a/server/render.js +++ b/server/render.js @@ -8,7 +8,7 @@ import read from './read' import getConfig from './config' import Router from '../lib/router' import Document from '../lib/document' -import Head from '../lib/head' +import Head, {defaultHead} from '../lib/head' import App from '../lib/app' export async function render (url, ctx = {}, { @@ -33,7 +33,7 @@ export async function render (url, ctx = {}, { return (staticMarkup ? renderToStaticMarkup : renderToString)(app) }) - const head = Head.rewind() || [] + const head = Head.rewind() || defaultHead() const config = await getConfig(dir) const doc = createElement(Document, { diff --git a/test/fixtures/basic/pages/head.js b/test/fixtures/basic/pages/head.js index 599aabbed406f6d155bd04edd077a4698465e1af..43ded20eb5cb058122e77a2c6c4109675500bc33 100644 --- a/test/fixtures/basic/pages/head.js +++ b/test/fixtures/basic/pages/head.js @@ -4,6 +4,7 @@ import Head from 'next/head' export default () =>