Menu

assetPrefix

Achtung: Bereitstellung auf Vercel konfiguriert automatisch ein globales CDN für Ihr Next.js-Projekt. Sie müssen kein Asset-Präfix manuell einrichten.

Hinweis: Next.js 9.5+ hat Unterstützung für einen anpassbaren Basispfad hinzugefügt, der besser für das Hosten Ihrer Anwendung auf einem Unterpfad wie /docs geeignet ist. Wir empfehlen nicht, für diesen Anwendungsfall ein benutzerdefiniertes Asset-Präfix zu verwenden.

CDN einrichten

Um ein CDN einzurichten, können Sie ein Asset-Präfix festlegen und den Ursprung Ihres CDN so konfigurieren, dass er auf die Domain verweist, auf der Next.js gehostet wird.

Öffnen Sie next.config.mjs und fügen Sie die assetPrefix-Konfiguration basierend auf der Phase hinzu:

next.config.mjs
// @ts-check
import { PHASE_DEVELOPMENT_SERVER } from 'next/constants'
 
export default (phase) => {
  const isDev = phase === PHASE_DEVELOPMENT_SERVER
  /**
   * @type {import('next').NextConfig}
   */
  const nextConfig = {
    assetPrefix: isDev ? undefined : 'https://cdn.mydomain.com',
  }
  return nextConfig
}

Next.js wird Ihr Asset-Präfix automatisch für die JavaScript- und CSS-Dateien verwenden, die es aus dem /_next/-Pfad lädt (.next/static/ Ordner). Zum Beispiel würde mit der obigen Konfiguration die folgende Anfrage für einen JS-Chunk:

/_next/static/chunks/4b9b41aaa062cbbfeff4add70f256968c51ece5d.4d708494b3aed70c04f0.js

Stattdessen so aussehen:

https://cdn.mydomain.com/_next/static/chunks/4b9b41aaa062cbbfeff4add70f256968c51ece5d.4d708494b3aed70c04f0.js

Die genaue Konfiguration zum Hochladen Ihrer Dateien auf ein bestimmtes CDN hängt von Ihrem CDN-Anbieter ab. Der einzige Ordner, den Sie auf Ihrem CDN hosten müssen, ist der Inhalt von .next/static/, der als _next/static/ hochgeladen werden sollte, wie die obige URL-Anfrage anzeigt. Laden Sie nicht den Rest Ihres .next/-Ordners hoch, da Sie Ihren Servercode und andere Konfigurationen nicht öffentlich zugänglich machen sollten.

Während assetPrefix Anfragen an _next/static abdeckt, beeinflusst es nicht die folgenden Pfade:

  • Dateien im public-Ordner; wenn Sie diese Assets über ein CDN bereitstellen möchten, müssen Sie das Präfix selbst einführen