如何避免缓存特定 Nextjs api 路由?
How to avoid caching for specific Nextjs api route?
我有 nextjs api 路由 /api/auth/signout
,它基本上只是清除特定的 cookie 并发回 json。
问题是,当我在 Vercel 中部署项目时,这个特定的 API 第一次正常工作(清除 cookie 并给出 200 响应)但后来它不起作用(未清除 cookie 并给出 304 响应)。
我想知道,有什么办法可以避免只对这条路由进行缓存吗?
解决此问题的最佳方法是什么?
您可以为每个 API 端点配置 Cache-Control
header
https://nextjs.org/docs/api-reference/next.config.js/headers#cache-control
在你的情况下,像这样的事情可能会成功:
res.setHeader('Cache-Control', 'no-store')
在 next.config.js
上添加了此配置
async headers() {
return [
{
source: '/api/<route-name>',
headers: [
{
key: 'Cache-Control',
value: 'no-store, max-age=0',
},
],
},
];
},
我有 nextjs api 路由 /api/auth/signout
,它基本上只是清除特定的 cookie 并发回 json。
问题是,当我在 Vercel 中部署项目时,这个特定的 API 第一次正常工作(清除 cookie 并给出 200 响应)但后来它不起作用(未清除 cookie 并给出 304 响应)。
我想知道,有什么办法可以避免只对这条路由进行缓存吗?
解决此问题的最佳方法是什么?
您可以为每个 API 端点配置 Cache-Control
header
https://nextjs.org/docs/api-reference/next.config.js/headers#cache-control
在你的情况下,像这样的事情可能会成功:
res.setHeader('Cache-Control', 'no-store')
在 next.config.js
async headers() {
return [
{
source: '/api/<route-name>',
headers: [
{
key: 'Cache-Control',
value: 'no-store, max-age=0',
},
],
},
];
},