Vercel:我们的官方托管合作伙伴

作者
Thuy Doan
Fred Schott

我们很高兴地宣布 Vercel 成为 Astro 新的官方托管合作伙伴!

Astro 是一个 JavaScript Web 框架,用于构建以内容为中心的网站。Astro 的下一代前端架构可自动减少页面上未使用的 JavaScript,同时最大化核心 Web 指标和其他性能指标。

数千名 Astro 开发者已经在使用 Vercel 的前端云平台和慷慨的免费套餐进行托管。这项新的合作将确保更多的协作、更多的功能,以及为在 Vercel 上使用 Astro 的开发者带来更好的体验。

Vercel 还将每月赞助 5,000 美元用于 Astro 的开源维护和开发。新的赞助资金将直接投入到我们的开源社区和维护中,惠及所有人。

以下是 Vercel 的 Lee Robinson 对此消息的看法

Vercel 坚信支持开源和所有 Web 框架。在过去的两年里,我们一直很乐意支持 Astro,看到 Astro 在 Vercel 上的持续增长后,我们很高兴能进一步深化我们的合作关系。

Lee Robinson,开发者体验副总裁

Lee 和 Fred K. Schott(Astro 联合创始人兼项目负责人)有机会坐下来,就 Astro、Vercel 的未来以及这项新合作对网络意味着什么进行了交谈。

播放

在 Vercel 上解锁 Astro

Vercel 一直是 Astro 开发者们的绝佳选择。去年,Vercel 推出了自动框架检测功能,为新的 Astro 项目提供了零配置设置。这一简单的改变为 Astro 用户节省了无数时间,并通过优化的网站配置提高了所有人的默认性能。

我们很高兴地宣布,为部署到 Vercel 的 Astro 用户提供一套新的功能,今天即可使用。这些功能得益于我们与 Vercel 的持续合作和赞助。

边缘中间件

Astro 中间件现在可以通过 Vercel 的边缘中间件在边缘运行。边缘中间件尽可能靠近用户运行,这意味着用户的响应时间更快。边缘中间件还允许您自定义通过服务器的每个请求和响应,从而可能减少发送到源服务器的流量。

Astro 用户现在可以

  • 支持多区域 URL 方案,将用户重定向到其本地化的 URL。
  • 验证用户令牌并阻止未经身份验证的流量访问服务器。
  • 边缘分布式全球数据库加载数据。
  • 在代码中定义缓存策略,而非在配置中。
  • 当响应 HTML 从服务器流回时进行缩小。

通过在 Astro 配置文件中的 Vercel 适配器中添加{edgeMiddleware: true},可以启用边缘中间件。在未来版本中,此选项可能会成为默认行为。请查阅Vercel 文档,了解更多关于边缘中间件如何在 Vercel 上工作的信息。

无服务器代码分割

得益于每个路由的无服务器代码分割,Astro 服务器应用程序现在在 Vercel 上运行得更快。

以前,Astro 会将整个服务器应用程序构建到一个 JavaScript 文件中。这简化了我们的部署,但牺牲了无服务器性能。通过将整个应用程序捆绑在一个 JavaScript 文件中,响应时间(特别是冷启动时间)会随着代码库的增长而被未使用的代码拖累。

将应用程序拆分为更小的函数,通过移除每个路由不需要的未使用代码来提高响应时间。部署独立路由也允许像 Vercel 这样的托管服务更好地将您的工作负载分配到多个更小的函数中。

今天,您可以通过在 Astro 配置文件中指定{ functionPerRoute: true }来启用此功能。几天后,此选项将随 Astro 3.0 的发布一同成为默认行为。

Vercel 上的图像优化

Astro 站点现在可以连接到 Vercel 内置的图像优化服务,以在 Astro 3.0 中实现按需图像优化(在 Astro 2.x 通过实验性标志也可用)。

图像优化可通过 Astro 内置的 <Image /> 组件和底层图像 API 在所有平台上使用。Astro 开发者可以在其网站上使用图像,而无需担心意外忘记优化图像。通过在 img 标签上进行智能高度和宽度属性标注,还可以自动防止累积布局偏移(Cumulative Layout Shift)。

静态站点将作为构建的一部分提前优化您的图像。但 Astro 服务器应用程序通常还需要将 Astro 内置的图像优化库 Sharp 部署到生产环境,以进行按需图像优化。通过利用 Vercel 内置的图像优化服务,开发者可以简化部署复杂性,提高图像性能,并降低计算成本。

今天,您可以通过在 Astro 配置文件中指定{ imageService: true }来启用此功能。在未来版本中,此选项可能会成为默认行为。

为每个人改进 Astro

我们与 Vercel 合作,利用他们的Build Output API 构建了这三项功能。我们的目标是未来将它们引入更多的托管平台。本文中提到的所有内容都以平台无关的方式设计,以便任何人都可以将这些相同的功能应用到他们自己的托管平台。

如果您有兴趣在您的托管平台上启用这些功能,可以在Discord 上与我们联系。

Astro ❤️ Vercel

Astro 很荣幸 Vercel 能成为我们的新官方托管合作伙伴。我们感谢 Lee Robinson 和 Vercel 团队对 Astro 的支持和推广。正是因为 Vercel 这样公司的支持,我们才能持续维护并将 Astro 发展成为一个开放、财务可持续的开源项目。

您可以通过 GitHub 上的FUNDING.md 文档了解我们如何使用赞助资金。如果您或您的公司在生产环境中使用 Astro,请考虑通过 Open CollectiveGitHub Sponsors 赞助我们,以支持 Astro 的开发。