您 ping 服务器以创建页面

Structured collection of numerical data for analysis and research.
Post Reply
shaownhasan
Posts: 35
Joined: Sun Dec 22, 2024 6:24 pm

您 ping 服务器以创建页面

Post by shaownhasan »

分布式持久渲染和 Netlify 的按需构建器
有一个称为分布式持久渲染的概念,它允许您以有趣的方式创建网页。有了这个概念(类似于增量静态再生或延迟静态生成,如果您在前端世界中见过它),会发生什么:

一旦创建该页面,它就静态存在于我们指定 台湾电话号码几位 的任何缓存长度
该团队选择采用这种方法是因为服务器端呈现的页面容易受到 DDoSing 和其他可能导致一个页面瘫痪的问题的影响,而且他们不希望人们如此广泛地分享他们的帖子,以至于分享的能力很慢。任何时候的其他用户。另外,它还节省成本,因为一旦静态构建页面,我们就不必再次查询服务器!

创建新页面的函数称为按需构建器 (ODB) 或构建器函数。我们可以使用博客内容查询该构建器函数,它将根据该内容生成一个页面!

Astro 和 Markdown 渲染
Astro 框架在 Web 框架领域较新,但它是一个功能强大的框架。它开箱即用,专为速度而设计,可以使用您最喜欢的任何 UI 库,只需极少的配置。

在这个项目的案例中,吸引人的是 Astro 本身支持将 Markdown 渲染为 HTML,并且开箱即用的 Netlify On-demand Builders!

由于 @astrojs/netlify 集成,用于设置构建器的配置是配置文件中的一行更改:



在 Share Pear 方面,有一个动态路由,用于在 API 请求的标头中查找用于填充博客的 Markdown 键。

现在重申一下:当您第一次访问使用分布式持久渲染的网站中的 URL 时,它会生成该页面,然后该页面将永远存在(……直到缓存过期)。因此,您可以访问 share.contenda.co/blog/example,它会在那里,但该页面不会填充真实内容,除非您根据预期发出适当的 API 请求。

Astro 页面像这样解析 markdown header!

让 markdown = Astro.request.headers.get("markdown");
尽管您通常可以使用 Netlify 重定向代理或直接在 Astro 中设置自定义标头(我写了一篇关于使用 Netlify 和 Astro 设置标头的不同方法的博客文章),但在这种特殊情况下我们不能,因为我们的网站不是“ “真正”静态。稍后,在生成页面之后,但在此之前,它会 ping 一个函数来创建页面。在我们的特定情况下,我们需要在创建页面之前拦截请求。

为了解决这个问题,请引入 Netlify 的边缘函数!边缘函数有点像无服务器函数,但它可以修改边缘的请求和响应。它将充当中间件,将自定义标头添加到来自平台的请求中。
Post Reply