next.js 接下来JS 13 notFound()返回状态200而不是404

7y4bm7vi  于 2023-10-18  发布在  其他
关注(0)|答案(1)|浏览(134)

我们在/app文件夹中有一个动态页面:/app/[...slug]
我们正在生成一堆静态URL。在组件内部有一个检查,如果这样的URL存在。如果没有,notFound函数被触发。

if (!databaseId) notFound();

它工作得很好,如果后端没有这样的页面,那么not-found.tsx的组件就会呈现出来。好吧,当我们使用export const dynamicParams = false;时,它工作得很好,所以如果没有找到路径,就没有SSR检查。但如果没有这一点,SSR检查将被触发,而notFound函数仍然从not-found.tsx呈现组件,但Chrome中网络选项卡中返回的页面状态为200。为什么会这样?如果notFound在这种情况下在后端被触发,那么它不应该自动向响应添加一个404状态吗?或者我们在这过程中沿着遗漏了什么?

piwo6bdm

piwo6bdm1#

好吧,回答我自己的问题-这篇评论帮助了我:https://github.com/vercel/next.js/issues/51021#issuecomment-1645492229。
我使用的是即时加载状态(加载.tsx文件与页面.tsx处于同一级别)。我不知 prop 体细节,但它确实有意义,因为加载出现在其他任何东西之前,所以服务器需要发送一些状态代码。

相关问题