我有一个使用 NextJS 13 App Directory 开发的电子商务应用程序,并将其托管在我自己的服务器上。 Nextjs 默认缓存系统工作正常,但每次部署时都会重置缓存。我没有始终更新的内容,但我想通过 CloudFlare 或 CloudFront CDN 提供我的内容。 我的应用程序的某些部分是静态的,某些部分是动态的。例如,我希望用户个人资料和购物车等动态页面直接在服务器上运行,而不需要 CDN,但我希望产品页面、关于我们、联系页面通过 CDN 静态运行。
为了让 CloudFlare 缓存发挥作用,需要设置“Cache-Control”,但您无法在 NextJS 13 App 目录中执行此操作。
简而言之;
直接从服务器获取动态页面,无需CDN, 我想通过 CDN 向我的客户提供静态页面。
感谢您的帮助!
我尝试在 Nextjs 上设置缓存控制,但没有成功。 我已经从 CloudFlare 域面板 -> 缓存规则字段定义了基于页面的缓存控制,但我想设置哪些页面是静态的,哪些页面是动态的,不是通过 CloudFlare,而是通过 NextJS。
您尝试过“动态”选项吗 https://nextjs.org/docs/app/api-reference/file-conventions/route-segment-config#dynamic?
所以我想你可以添加
export const dynamic = 'force-static'
到您想要缓存的页面/布局