Spec-Zone.ru › Next.js

Нет скрипта до интерактивного скрипта вне документа

Запретить использование стратегии next/script's beforeInteractive вне app/layout.jsx или pages/_document.js.

Почему произошла эта ошибка

Вы не можете использовать компонент next/script со стратегией beforeInteractive вне app/layout.jsx или pages/_document.js. Это потому, что стратегия beforeInteractive работает только внутри app/layout.jsx или pages/_document.js и предназначена для загрузки скриптов, необходимых для всего сайта (то есть скрипт загрузится, когда любая страница приложения будет загружена на стороне сервера).

Возможные способы исправить это

Маршрутизатор приложений

Если вам нужен глобальный скрипт, и вы используете маршрутизатор приложений, переместите скрипт внутрь app/layout.jsx.

import Script from 'next/script'
 
export default function RootLayout({ children }) {
  return (
    <html lang="en">
      <body>{children}</body>
      <Script
        src="https://example.com/script.js"
        strategy="beforeInteractive"
      />
    </html>
  )
}

Маршрутизатор страниц

Если вам нужен глобальный скрипт, и вы используете маршрутизатор страниц, переместите скрипт внутрь pages/_document.js.

import { Html, Head, Main, NextScript } from 'next/document'
import Script from 'next/script'
 
export default function Document() {
  return (
    <Html>
      <Head />
      <body>
        <Main />
        <NextScript />
        <Script
          src="https://example.com/script.js"
          strategy="beforeInteractive"
        ></Script>
      </body>
    </Html>
  )
}
  • Оптимизация скриптов маршрутизатора приложений
  • Оптимизация скриптов маршрутизатора страниц

© 2024 Vercel, Inc.
Licensed under the MIT License.
https://nextjs.org/docs/messages/no-before-interactive-script-outside-document

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API