Nextjs:加载或 Suspense 回退不会在生产中显示

Fer*_*ted 5 reactjs next.js vercel react-server-components

我已使用 nextjs v13 将我的个人页面迁移到应用程序目录。

我尝试首先在组件fallback的 prop中添加 RSC 的加载程序Suspense,并添加loading位于目录中每个路由的路径处的组件app

// src/app/posts/loading.tsx
import { Container } from '~/components/organisms/container';

export default function Loading() {
  return (
    <Container>
      {/* Add a big loading string with tailind */}
      <span className="text-6xl font-bold text-center text-red-500">Loading...</span>
    </Container>
  );
}
Run Code Online (Sandbox Code Playgroud)

还有这样的

// src/app/posts/page.tsx
export default async function PostsPage() {
  return (
    <Container>
      <PageHeader
        title='Posts'
        description="I love to write about things I'm learning. 
            Blogging is a great way to improve and share knowledge.
            And who knows, maybe one day it might help me to write a book!"
      />
      <Suspense
        fallback={
          <Container>
            {/* Add a big loading string with tailind */}
            <span className='text-6xl font-bold text-center text-red-500'>
              Loading...
            </span>
          </Container>
        }
      >
        {/* @ts-expect-error Server Component */}
        <Posts />
      </Suspense>
    </Container>
  );
}

Run Code Online (Sandbox Code Playgroud)

两人都致力于当地发展

本地主机加载程序

但是它们没有显示在我的 vercel 部署中

18.16在本地使用节点,并在我的 vercel 部署中使用节点18.x。我还使用默认配置在 vercel 中部署 nextjs 项目。

如果有人需要更多详细信息,可以在此处找到分支代码

小智 0

您不包括如何加载数据,但如果您使用 new那么它可能与nextjs 正在执行的内置缓存fetch有关- 默认情况下它会无限期地缓存数据。在生产中,您的帖子看起来就像是立即加载的