从 Cloudflare Pages 迁移至 EdgeOne Pages

本指南将帮助您将 Cloudflare Pages 项目平滑迁移至 EdgeOne Pages。


1.准备工作:查找构建命令和构建输出

首先,我们需要找到您 Cloudflare Pages 项目的构建命令和构建输出:
1. 登录仪表板,找到要迁移的项目。
2. 进入项目的“设置”选项卡,查看"构建配置"模块。
3. 记录"构建命令"和"构建输出"字段的值。






例如:
构建命令: npm run build
构建输出: build

这些信息将在项目配置中使用。


2.配置迁移:处理重定向和标头

Cloudflare Pages 使用 _redirects 和 _headers 文件来配置重定向规则和自定义标头,需要将这些配置迁移到 EdgeOne Pages 的 edgeone.json 文件中。

以下是两者的对比示例:

Cloudflare Pages 的 _redirects 文件:
/old-path /new-path 301
/api/* /api/proxy 200
Cloudflare Pages 的 _headers 文件:
/*
X-Frame-Options: DENY
X-Content-Type-Options: nosniff

/assets/*
Cache-Control: public, max-age=31536000

在 EdgeOne Pages 中,我们需要创建一个 edgeone.json 文件来包含这些配置:
{
"redirects": [
{
"source": "/old-path",
"destination": "/new-path",
"statusCode": 301
}
],
"rewrites": [
{
"source": "/api/*",
"destination": "/api/proxy"
}
],
"headers": [
{
"source": "/*",
"headers": [
{
"key": "X-Frame-Options",
"value": "DENY"
},
{
"key": "X-Content-Type-Options",
"value": "nosniff"
}
]
},
{
"source": "/assets/*",
"headers": [
{
"key": "Cache-Control",
"value": "public, max-age=31536000"
}
]
}
]
}
在迁移过程中,Cloudflare Pages 的配置文件与 EdgeOne Pages 的对应关系如下:
_headers 文件对应 headers 配置。
_redirects 文件中的重定向对应 redirects 配置。
代理重写规则(如 /api/*)对应 rewrites 配置。

详细的配置选项可以参考 edgeone.json 文档


3.函数迁移:从 Cloudflare Pages 到 EdgeOne Pages

两个平台在语法和使用方式上基本保持一致。

以下是一个简单的示例:
// Cloudflare Pages Functions
export function onRequest(context) {
return new Response("Hello, Cloudflare Pages!");
}

// EdgeOne Pages Functions
export function onRequest(context) {
return new Response("Hello, EdgeOne Pages!");
}

主要相似点:
两个平台都使用 onRequest 函数来处理所有 HTTP 方法。
两个平台的函数都接收一个 context 对象,包含了请求信息、环境变量等。
响应方式相同,都使用 Response 对象。
路由规则基本一致,都支持基于文件系统的路由和动态路由。

迁移建议:代码的编写与调用无需更改。

注意:如果需要从 Cloudflare Workers 迁移到 Cloudflare Pages Functions,请参看文档。成功迁移后,即可尝试上述的迁移步骤,若仍有问题,可通过社群联系我们解决。

详细的函数使用可以参考 Pages Functions 文档


4.项目部署:在 EdgeOne Pages 创建新项目

准备工作完成后,在 Pages 上创建并部署项目:
1. 登录腾讯云控制台,进入 Pages 服务。
2. 点击"创建项目",选择您的 GitHub 仓库。
3. 在项目配置中,填入之前记录的构建命令和构建输出。
4. 点击"开始部署"按钮,Pages 将自动构建和部署您的项目。


5.域名配置:添加自定义域名

迁移步骤:
1. 在项目设置中添加您的自定义域名,获取 CNAME 记录值。
2. 登录您的 DNS 服务商控制台(如果您的域名在 Cloudflare 管理,则登录 Cloudflare 控制台)。
3. 找到之前为 Cloudflare Pages 设置的 CNAME 记录。
4. 更新 CNAME 记录,将其指向 EdgeOne Pages 提供的新值。
5. 如果您之前在 Cloudflare Pages 设置了其他 DNS 记录(如 A 或 AAAA 记录),请删除这些记录。
6. 等待 DNS 更新生效(可能需要几分钟到几小时)。

注意: 如果您的域名之前由 Cloudflare 管理,您可以选择继续使用 Cloudflare 的 DNS 服务,只需更新相应的 CNAME 记录即可。

详细的域名添加过程可以参考 域名管理文档

通过完成上述步骤,您已经成功将 Cloudflare Pages 项目迁移到了 EdgeOne Pages。两个平台在某些方面有相似之处,但在强大的基础设施上,我们针对 Pages 产品特点进行了智能刷新预热等优化,提供开箱即用的使用体验。此外,Pages 在公测阶段相对竞品限制更少,为开发者提供更多选择的灵活性。在客户支持上,我们提供更及时的响应,致力于为开发者打造优质的产品体验。

如果您在迁移过程中遇到任何问题,欢迎查阅 EdgeOne Pages 的官方文档