Heim >Web-Frontend >js-Tutorial >Warum erhalte ich beim Erstellen meiner statischen Next.js-Site in der Produktion einen „Abruffehler'?

Warum erhalte ich beim Erstellen meiner statischen Next.js-Site in der Produktion einen „Abruffehler'?

Linda Hamilton
Linda HamiltonOriginal
2024-12-03 00:50:16737Durchsuche

Why Do I Get a

Abruffehler beim Erstellen einer statischen Next.js-Website in der Produktion

Beim Erstellen einer Next.js-Website für die Produktion kann es bei der Verwendung von getStaticProps zu einem „Abruffehler“ kommen und getStaticPaths, um Daten von einer API-Route abzurufen. Dieser Fehler kann aus mehreren Gründen auftreten.

Interne API-Routenverwendung in getStaticProps

Im bereitgestellten Code rufen Sie eine interne API-Route auf, /api/products/${slug} , aus getStaticProps. Dies wird nicht empfohlen, da API-Routen während der Erstellungszeit nicht verfügbar sind, was zum Abruffehler führt.

Serverseitiger Code in getStaticProps und getStaticPaths

Anstatt eine API-Route abzurufen, sollten Sie schreiben serverseitigen Code direkt in getStaticProps und getStaticPaths. Diese werden nur serverseitig ausgeführt und ermöglichen Ihnen das direkte Schreiben von Code mithilfe serverseitiger Ressourcen wie Datenbankabfragen.

Neu geschriebener Code

Hier ist eine geänderte Version Ihres Codes:

// /pages/product/[slug]

import db from '../../../data/products'

// Remaining code..

export const getStaticProps = async ({ params: { slug }, locale }) => {
    const result = db.filter(item => item.slug === slug)
    const data = result.filter(item => item.locale === locale)[0]
    const { title, keywords, description } = data
    return {
        props: {
            data,
            description,
            keywords, 
            title
        }
    }
}

export const getStaticPaths = async () => {
    const paths = db.map(({ slug, locale }) => ({ params: { slug: slug }, locale }))
    return {
        fallback: true,
        paths,
    }
}

Durch die direkte Verwendung der Datenquelle in getStaticProps und getStaticPaths vermeiden Sie den Aufruf interner API-Routen während der Erstellungszeit, wodurch der Abruf aufgelöst wird Fehler.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich beim Erstellen meiner statischen Next.js-Site in der Produktion einen „Abruffehler'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn