404 在 Next.JS 中部署后的动态路径

问题描述 投票:0回答:1

我从 Sanity 获取我的 Next JS 应用程序中的数据以创建动态路由。 像这样:

export const getStaticPaths = async () => {
    const res = await client.fetch(`*[_type in ["work"] ]`);
    const data = await res;

    const paths = data.map((e) => {
        return {
            params: { slug: e.slug.current },
        };
    });
    return {
        paths,
        fallback: false,
    };
};

export const getStaticProps = async (context) => {
    const slug = context.params.slug;
    const res = await client.fetch(`*[_type == "work" && slug.current == "${slug}"] 
    `);
    const data = await res;

    const resAll = await client.fetch(`*[_type == "work"] | order(order asc)`);
    const dataAll = await resAll;

    return {
        props: {
            post: data[0],
            dataAll,
        },
        revalidate: 1, // 10 seconds
    };
};

在本地主机上,一切都运行良好且快速,在 Netlify 上,每条新生成的路由都出现 404 错误。 只有在重新部署页面后才会出现。

我的目录如下所示:

-works
----[slug].jsx
----index.jsx

为什么 netlify 不立即识别新路径? 此外,通过 sanity 对网站上现有内容的每一次更改都需要相当长的时间才能显示在 netlify 上。

我尝试在 netlify 中创建一个构建挂钩并监听内容的变化,以在每次添加新内容时触发服务器上的构建。

不过,这似乎是一个棘手的解决方法。必须有一个更简单的方法来让它工作。

javascript next.js netlify sanity
1个回答
0
投票

可能的解决方案:

我将 fallback 从 false 更改为 true,它可以在 Netlify 上运行而不会出现 404。 虽然它在本地主机上中断,但在实时服务器上工作。

© www.soinside.com 2019 - 2025. All rights reserved.