Next.js是否可以为SSR页面返回304未修改状态



很明显,Next.js为SSG页面返回了304 Not Modified HTTP状态,但它能为实时呈现的页面返回304 Not Modified HTTP状态吗?

反过来说,当最初请求SSR页面时,Next.js是否返回ETag标头?

谢谢。

Next.js v13(至少(似乎可以,但您必须设置状态代码和ETag/Last-Modified,并自己检查传入的If-None-Match/If-Modified-Since标头。

模拟代码:

export const getServerSideProps = async (ctx) => {}
const { req, res } = ctx;
if (shouldReturnNotModified(req)) {
res.statusCode = 304;
return { props: {} };
}

res.setHeader('ETag', generateETag(req));
return { 
props: await fetchAllTheProps(req),
};
}
// This is not rendered if the `res.statusCode` is 304
export default function MyPage (props) {
return (
<div>
Render the page's 200 OK response 
using all the props
</div>
);
}

Next.js唯一真正有帮助的是,如果它注意到您已将res.statusCode设置为304,则跳过呈现响应体。

这些都没有正式记录。(在Nextjs文档中搜索"304"返回0个结果。(

您可以更新标题以在页面上添加缓存。更多信息,请访问:https://nextjs.org/docs/going-to-production#caching

相关内容

  • 没有找到相关文章

最新更新