【发布时间】:2021-10-26 13:32:24
【问题描述】:
我正在跑步…… 开发模式下的 next.js 应用程序。我有一个页面,它映射来自后端的 JSON 数据,并为包含的每个“事件”对象呈现一个组件“EventListItem”。
列表页面:
- http://localhost:3000/6/events/2021-08-26
- (http://localhost:3000/[cinemaId]/events/[[...date]])
- 内容根目录的路径:'pages/[cinemaId]/events/[[...date]]'
此列表项是可点击的,因此用户可以导航到包含“事件”对象的所有详细信息的详细信息页面。
详情页:
- http://localhost:3000/6/events/detail/2021-08-26/152430
- (http://localhost:3000/[cinemaId]/events/detail/[[...date]]/[[...slug]])
- 内容根目录的路径:'pages/[cinemaId]/events/detail/[...slug]'
处于开发模式... 当我点击链接时,在浏览器导航到正确的页面并正确呈现所有信息之前,我会暂时触发错误:
Unhandled Runtime Error
Error: Failed to load script: /_next/static/chunks/pages/%5BcinemaId%5D/events/detail/%5Bdate%5D/%5BeventTypeId%5D.js
Call Stack
appendScript/</script.onerror
node_modules/next/dist/client/route-loader.js (83:51)
但是,正如我所说,错误会短暂闪现,然后详细页面的内容会正确呈现。
当我直接导航到 URL 而不点击链接时……一切都正确呈现,没有错误。
当我尝试 git bisect... 这个错误阻止了我使用 git bisect 查找原因的尝试。我记得的第一次发生是三天前,但是当我从一个多星期前检查提交时,错误就在那里。我不能 100% 确定,但我不记得在进行这些提交时看到此错误。
当代码在生产环境中运行时... 我无法复制代码,一切运行顺利
服务器端渲染 目前,这两个页面都没有超过准系统 SSR 代码。目前,所有数据获取都在客户端完成。这会改变。
感谢您的阅读。任何见解都将非常受欢迎。代码在下面供参考...
组件中的链接:
<Link
href={{pathname: "/[cinemaId]/events/detail/[date]/[eventTypeId]",
query: {cinemaId: cinemaId, date: date, eventTypeId: showtime.eventTypeId}
}}
>
<a className="font-bold text-lg">{showtime.name}</a>
</Link>
【问题讨论】:
-
您能展示一下您的实际
pages文件夹结构吗?Link中的pathname值与您之前引用的页面路径不匹配。 -
@juliomalves 谢谢! “来自内容根目录的路径”是 pages/[cinemaId]/events/detail/[...slug].tsx
-
我也看到了同样的情况。我尝试在 Link 组件的“as”属性中添加 URL,但这没有帮助。我的用例是一个带有动态 URL 的链接来下载文件。
标签: javascript reactjs next.js runtime-error server-side-rendering