跳转到内容
搜索文档

从 Netlify 迁移到 Pages

最后更新 查看 MarkdownAgent 设置

在本教程中,你将学习如何将 Netlify 应用迁移到 Cloudflare Pages。

查找构建命令和构建目录

要将应用迁移到 Cloudflare Pages,请找到构建命令和构建目录。Cloudflare Pages 将使用此信息构建并部署应用。

在 Netlify 仪表板中,找到要部署的项目。它应配置为从 GitHub 仓库部署。

在 Netlify 仪表板中选择站点

在站点仪表板中,选择 Site Settings(站点设置),然后选择 Build & Deploy(构建和部署)

在站点仪表板中选择 Site Settings在侧边栏中选择 Build and Deploy

Build & Deploy(构建和部署) 选项卡中,找到 Build settings(构建设置) 面板,其中包含 Build command(构建命令)Publish directory(发布目录) 字段。保存这些值以便部署到 Cloudflare Pages。在下图中,Build command(构建命令)yarn buildPublish directory(发布目录)build/

查找 Build command 和 Publish directory 字段

迁移重定向和标头

如果站点在发布目录中包含 _redirects 文件,可以在 Cloudflare Pages 中使用相同文件,重定向将成功执行。如果重定向在 netlify.toml 文件中,需要将其添加到 _redirects 文件夹。Cloudflare Pages 目前对高级重定向的支持有限。如果有超过 2000 条静态和/或 100 条动态重定向规则,建议使用 Bulk Redirects

标头文件也可以移动到发布目录中的 _headers 文件夹。需要注意的是,_headers 文件中定义的自定义标头目前不会应用于来自 functions 的响应,即使 function 路由与 URL 模式匹配。要了解如何处理标头,请参阅标头

表单

在表单组件中,从 <form> 标签中移除 data-netlify = "true" 属性或 Netlify 属性。现在可以将表单逻辑作为 Pages Function 处理,并将条目收集到数据库或 Airtable。更多信息请参阅使用 Pages Functions 处理表单提交教程。

无服务器 functions

Netlify functions 和 Pages Functions 共享相同的文件系统约定,在项目根目录使用 functions 目录处理无服务器 functions。但是,语法和 functions 的部署方式不同。Pages Functions 在 Cloudflare Workers 上运行,默认在 Cloudflare 全球网络上运行,无需额外代码或配置即可部署。

Pages Functions 还提供中间件,可以在 function 路由处理器之前和/或之后运行所需的任何逻辑。

Functions 语法

Netlify functions 导出接受 event 和 context 参数的 async 事件处理器。对于 Pages Functions,需要导出单个接受 context 对象的 onRequest function。context 对象包含请求的所有信息,如 requestenvparams,并返回新的 Response。了解更多关于编写第一个 function的信息。

使用 Netlify functions 的 Hello World:

exports.handler = async function (event, context) {
	return {
		statusCode: 200,
		body: JSON.stringify({ message: "Hello World" }),
	};
};

使用 Pages Functions 的 Hello World:

export async function onRequestPost(request) {
	return new Response(`Hello world`);
}

其他 Netlify 配置

netlify.toml 文件可能包含 Pages 支持的配置,例如预览部署、指定发布目录和插件。迁移配置后可以删除该文件。

访问管理

可以将访问管理迁移到 Cloudflare Zero Trust,它允许你管理应用的用户身份验证、事件日志和请求。

创建新的 Pages 项目

找到构建目录和构建命令后,即可将项目迁移到 Cloudflare Pages。

快速入门指南将指导你如何将 GitHub 项目添加到 Cloudflare Pages。

如果选择为 Pages 使用自定义域名,可以将其设置为当前部署的 Netlify 应用的相同自定义域名。要为 Pages 项目分配自定义域名,请参阅自定义域名

清理旧应用并分配域名

在 Cloudflare 仪表板中,前往 DNS Records(DNS 记录) 页面。

Go to Records ↗

确认已将域名的 CNAME 记录从 Netlify 更新为 Cloudflare Pages。DNS 记录更新后,请求将发送到 Pages 应用。

DNS 中,记录的 Content(内容) 应为 <SUBDOMAIN>.pages.dev 子域名。

完成上述步骤后,你已成功将 Netlify 项目迁移到 Cloudflare Pages。

这篇文档对您有帮助吗?