Skip to content

关于站点缓存

迁移自:关于站点缓存 发布日期:2024-9-6 最后编辑:2024-9-6 原栏目:🛠 站点配置

⚠️

在了解如何修改站点配置之前,我们需要了解一下NotionNext的缓存机制。

前言

你可能会遇到这样的问题,修改了站点的菜单、标题、公告后,访问网站首页发现已经生效了,但是点击到里面的文章子页面后发现,每个文章子页面的标题、菜单、公告都是错误的旧版,

这是怎么回事?

关于缓存

独立缓存

每个子页面的缓存都是独立的,例如首页、文章详情页。

image.png

image.png

因此左上角的标题和右下角的公告,在每个子页面都有一个独立的缓存,修改标题后,首页的标题生效了,但是打开每个子页面中还会显示上一个缓存的版本。

缓存更新机制

页面数据的只有在用户访问后才会手动触发,访问站点的任意页面,默认会展示站点初次部署,或上次更新后的页面缓存。

这是为了让用户可以第一时间打开页面,而无需等待抓取Notion最新数据。

什么时候更新?

  1. 从首页博客列表进入此文章,并在此页面按下F5进行刷新

  2. 直接从搜索引擎或其它直接链接访问到这篇文章。

这两种情况会触发NotionNext去重新拉取数据,同时页面不会等待拉取结果,会直接返回上一个缓存版本。拉取数据可能耗费几秒时间,拉取完会自动渲染出新的页面版本并进行缓存,以备下一位用户或你的下一次访问。 此时再第二次刷新页面,返回的就是最新拉取并渲染出的版本,页面的内容就是正确的了。

每次只会拉取一个页面的数据。

公共部分的配置

标题、菜单、公告这些公共部分的内容修改后,每个页面都要刷新两次才能看到最新版本。

这样如果你发表了上百篇文章后,要去每一个文章页面更新公共部分会很困难。

解决缓存问题的办法

修改了公共的配置、标题这些之后,建议整体重新部署一下项目。 等这些固定下来后,后续更新文章的时候,就只要单独请求最新的文章即可完成更新流程。

其它

  • 所有人看到的都是一样的内容,只要有一个人去触发了更新,其他人就能看到更新后的版本

  • 可以参考《vercel快速重新部署项目

原文链接

https://docs.tangly1024.com/article/cache-of-notion-next