Netlify
概览

Netlify 上的 Next.js

Netlify Next.js 适配器 v5 测试状态

Netlify 的 Next.js 适配器会自动配置 Netlify 站点的关键功能,包括缓存控制、按需重新验证和图像优化。

该适配器配置 Netlify 函数来处理站点的服务器端功能(如 SSR、ISR 和 PPR 页面、API 端点、Server Actions 等),以及用于边缘 Middleware 的 Netlify 边缘函数,确保功能开箱即用。

我们使用框架本身的全面端到端测试,自动验证与最新稳定版 Next.js 的兼容性。要获取最新的测试结果,请使用上方的徽章。

开始使用

最简单的开始方式是将我们的 Next.js 平台 starter 模板部署到您的 Netlify 账户。使用下面的按钮开始。

部署到 Netlify (opens in a new tab)

先决条件

主要功能

  • App Router: Netlify 完全支持 Next.js App Router,它支持更强大的嵌套布局和 React 的最新功能,如 Server Components 和 Streaming。

  • 自动细粒度缓存: 适配器在 Netlify 上使用细粒度缓存来支持 Next.js 全路由缓存和数据缓存。这意味着静态页面响应会自动缓存到边缘,并且可以按路径或按标签重新验证。

  • 按需和基于时间的重新验证: App Router 和 Pages Router 都支持按需和基于时间的重新验证,允许您在部署后的任何时间重新验证和生成内容。

  • 图像优化: next/image 组件默认使用 Netlify Image CDN (opens in a new tab) 以确保您的图像得到优化并以最高效的格式提供服务。

请注意,虽然我们通常也从早期阶段支持实验性功能(例如,Partial Prerendering),但这些功能在框架层面尚未被视为稳定功能。

自动框架检测

Netlify 会自动检测到您正在使用 Next.js,并为您的站点配置最新的适配器。

固定特定适配器版本

要将 Netlify Next.js 适配器固定到特定版本,请参阅 Netlify 文档 (opens in a new tab)

建议的配置值

当您为 Next.js 项目 链接仓库 (opens in a new tab) 时,Netlify 会提供建议的构建命令和发布目录:next build.next

如果您使用 CLI 运行 Netlify Dev (opens in a new tab) 进行本地开发环境,Netlify 会建议一个开发命令和端口:next3000

您可以覆盖建议的值或在配置文件中设置它们,但自动框架检测的建议值可能有助于简化在 Netlify 上设置 Next.js 站点的过程。

对于手动配置,请查看 Next.js 的 典型构建设置 (opens in a new tab)

限制

目前,Netlify 的 Next.js 适配器有以下限制:

  • 设置为 edge 运行时的 SSR 页面将在您的 函数区域 (opens in a new tab) 中运行。 如果边缘级性能至关重要,我们建议您改用带有边缘函数的静态页面。它们在源站渲染,然后缓存到边缘,并可按需重新验证。

  • Next.js 配置中的 Rewrites 不能指向 public 目录中的静态文件。 如果在 next.config.js 中创建 beforeFiles rewrites,它们不能指向站点 public 目录中的静态文件。您可以使用 middleware rewrites 作为替代方案。

  • Headers 和 Redirects 在 middleware 之后评估。 如果您需要维持 Next.js 文档 (opens in a new tab) 中指定的执行顺序,您将需要使用我们的平台原语在 Next.js 之外配置 headers (opens in a new tab)redirects (opens in a new tab)

  • Netlify Forms 兼容性: 使用当前适配器使用 Netlify Forms 需要变通方法

pnpm 支持

如果您计划使用 pnpm 与 Next.js 一起管理依赖项,您必须执行以下操作之一:

了解更多关于在 Netlify 上使用 pnpm (opens in a new tab) 的信息。

故障排除

OpenNext 文档专门关于使用 Netlify 的 Next.js 适配器 v5 及更高版本。对于旧版本的适配器,请参阅 Netlify 文档 (opens in a new tab)

如果您需要任何版本适配器的帮助,请访问 我们的支持页面 (opens in a new tab) 以查找各种获取答案和帮助的方法。

更多资源