diff --git a/packages/nuxt/src/core/runtime/nitro/renderer.ts b/packages/nuxt/src/core/runtime/nitro/renderer.ts index f8d9fddb3f..1622e030c4 100644 --- a/packages/nuxt/src/core/runtime/nitro/renderer.ts +++ b/packages/nuxt/src/core/runtime/nitro/renderer.ts @@ -16,8 +16,8 @@ import { stringify, uneval } from 'devalue' import destr from 'destr' import { getQuery as getURLQuery, joinURL, withoutTrailingSlash } from 'ufo' import { renderToString as _renderToString } from 'vue/server-renderer' -import { createHead as createServerHead, propsToString, renderSSRHead } from '@unhead/vue/server' -import type { Head, HeadEntryOptions, Link, Script, Style, ResolvedHead } from '@unhead/vue/types' +import { createHead, propsToString, renderSSRHead } from '@unhead/vue/server' +import type { Head, HeadEntryOptions, Link, ResolvedHead, Script, Style } from '@unhead/vue/types' import { defineRenderHandler, getRouteRules, useNitroApp, useRuntimeConfig, useStorage } from 'nitro/runtime' import type { NuxtPayload, NuxtSSRContext } from 'nuxt/app' @@ -287,7 +287,7 @@ export default defineRenderHandler(async (event): Promise({ addTemplate({ filename: 'unhead-options.mjs', getContents () { + // disableDefaults is enabled to avoid server component issues if (isNuxtV4 && !options.legacy) { - return `export default {}` + return ` +export default { + disableDefaults: true, +}` } // v1 unhead legacy options const disableCapoSorting = !nuxt.options.experimental.headNext return `import { DeprecationsPlugin, PromisesPlugin, TemplateParamsPlugin, AliasSortingPlugin } from ${JSON.stringify(unheadPlugins)}; export default { + disableDefaults: true, disableCapoSorting: ${Boolean(disableCapoSorting)}, plugins: [DeprecationsPlugin, PromisesPlugin, TemplateParamsPlugin, AliasSortingPlugin], }`