我有一个页面,我想动态呈现,而不是静态的。不幸的是,简单地做的普遍答案是:
export const dynamic = "force-dynamic";
不起作用我也试过
export const revalidate = 0;
我试过很多种组合
我知道它是静态呈现的,因为客户端在访问页面后的5分钟内不会向服务器发出任何请求,这对于静态呈现的页面来说是正常的。
另一个奇怪的方面是,我正在使用cookie来获取。没有为提取指定cache
参数。
页面的路径是/reports/income-statement
,所以它没有使用slugs。这是否意味着我不能强迫它是动态的?我也没有使用任何searchParams(尽管它接受searchParams)。
版本:已尝试使用Next 13.4.5和13.4.3
1条答案
按热度按时间vsmadaxz1#
我想我找到了问题的答案:第13章是错误的,或者至少是误导性的
当涉及到路由器缓存时,您无法将页面配置为动态或非动态。像export
const dynamic = 'force-dynamic'
或export const dynamic = 'auto'
这样的声明不适用于Pages。同样,fetch
请求的该高速缓存选项也无关紧要。来源:https://github.com/vercel/next.js/discussions/54075
影响路由器缓存的唯一方法是使用服务器操作或使用router.refresh()。