繁体   English   中英

Nextjs 是否在使用 ISR 时读取缓存 form.next/server/pages/ 并且是否可以从 CDN 提供它?

[英]Is Nextjs reading cache form .next/server/pages/ when using ISR and is it possible to serve it from a CDN?

我想在 Vercel 之外部署下一个项目,但对缓存的工作方式感到困惑。 在启用 ISR 的页面访问 url 时,我可以确认在重新验证期未结束之前实际上未访问数据库,但是

第一个问题:生成的页面似乎存在于.next/server/pages/mypage.html(和mypage.json)但是在请求页面的url后检查devtools时我只能看到对.next/static/*的多个请求和.next/static/chunks/pages/* 这似乎是在构建时生成的文件,对访问数据库时 ISR 重新生成的内容一无所知,我找不到与 .next/server/ 相关的任何内容页。 有人可以解释一下吗?

第二个问题:如果它是从 .next/server 访问的,是否可以通过 CDN 进行缓存,因为 NextJS 的文档建议只是针对 CDN 上的 host.next/static ?

将文件上传到给定 CDN 的确切配置取决于您选择的 CDN。 您需要在 CDN 上托管的唯一文件夹是 .next/static/ 的内容,如上述 URL 请求所示,应将其上传为 _next/static/。 请勿上传 your.next/ 文件夹的 rest,因为您不应将您的服务器代码和其他配置暴露给公众。

https://nextjs.org/docs/api-reference/next.config.js/cdn-support-with-asset-prefix

提前致谢。

在我的理解中,不打到 NextJS 应用程序的前端而是指向它自己的内部缓存来服务会破坏 ISG 设置。

考虑以下流程:

  1. 您的 CDN 使用生成的 ISG 生成页面./server文件夹
  2. CMS 进行更新,您的 CDN 未连接到接收 NextJS 更新
  3. Next 使用和更新./server中的当前页面并进行相应的更新。
  4. 您的 CDN 无法知道,除非您在 CDN 到期设置为适用时提前 60 秒进行了更新。

指向应用程序的前面,而不是Next 用于维护 ISG 的/server文件夹中的临时存储。 当然,这不适用于托管 JS 的/public/static文件夹,您可以通过 CDN 前端

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM