国际站
    控制台
    • 产品简介
    • 快速开始
      • 导入 Git 仓库
      • 从模板开始
      • 直接上传
      • 从 AI 开始
    • 框架指南
      • 前端
        • Vite
        • React
        • Vue
        • 其他框架
      • 后端
      • 全栈
        • Next.js
        • Nuxt
        • Astro
        • React Router
        • SvelteKit
      • 自定义 404 页面
    • 项目指南
      • 项目管理
      • edgeone.json
      • 缓存配置
      • 错误码
    • 构建指南
    • 部署指南
      • 概览
      • 触发部署
      • 管理部署
      • 部署按钮
      • 使用 Github Action
      • 使用 CNB 插件
      • 使用 IDE 插件
      • 使用 CodeBuddy IDE
    • 域名管理
      • 概览
      • 自定义域名
      • HTTPS 配置
        • 概览
        • 申请免费证书
        • 使用 SSL 托管证书
      • 配置 DNS 的 CNAME 记录
    • 可观测性
      • 概述
      • 指标分析
      • 日志分析
    • Pages Functions
      • 概览
      • Edge Functions
      • Cloud Functions
        • 概览
        • Node Functions
    • KV 存储
    • 边缘 AI
    • API Token
    • EdgeOne CLI
    • Pages MCP
    • 集成指南
      • AI
        • 对话型大模型集成
        • 图片大模型集成
      • 数据库
        • Supabase 集成
        • Pages KV 集成
      • 电商
        • WooCommerce 集成
        • Shopify 集成
      • 支付
        • Stripe 集成
        • Paddle 集成指南
      • CMS
        • Sanity 集成
        • Contentful 集成
        • WordPress 集成
      • 身份验证
        • Supabase 集成
        • Clerk 集成
    • 最佳实践
      • 使用边缘 AI 模型快速搭建对话型 AI 站点
      • 使用 Shopify 搭建电商平台
      • 使用 Supabase 和 Stripe 搭建 SaaS 站点
      • 如何快速搭建公司品牌站点
      • 如何快速搭建博客站点
      • 使用通用大模型快速搭建AI应用
    • 迁移指南
      • 从 Vercel 迁移至 EdgeOne Pages:优化您在中国区域的网站部署
      • 从 Cloudflare Pages 迁移至 EdgeOne Pages:优化您在中国区域的网站部署
      • 从 Netlify 迁移至 EdgeOne Pages:优化您在中国区域的网站部署
    • 排障指南
    • 常见问题
    • 联系我们
    • 产品动态

    从 Vercel 迁移至 EdgeOne Pages:优化您在中国区域的网站部署

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

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

    首先,我们需要找到您 Vercel 项目的构建命令和输出目录:
    1. 登录仪表板,找到要迁移的项目。
    2. 进入 Settings(项目设置),选择 General(通用) 选项卡。
    3. 在 Build and Development Settings(编译与部署设置) 面板中,记录以下信息:
    3.1 Build Command (构建命令)
    3.2 Output Directory (输出目录)
    
    
    
    例如:
    构建命令: npm run build
    输出目录: build
    
    这些信息将在项目配置中使用。
    

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

    如果您的项目使用了 vercel.json 文件来配置重定向或自定义标头,需要将这些配置迁移到 EdgeOne Pages 的 edgeone.json 文件中。
    
    以下是两者的对比示例:
    
    Vercel 的 vercel.json 配置:
    {
    "redirects": [
    {
    "source": "/articles",
    "destination": "/blog",
    "statusCode": 301
    }
    ],
    "rewrites": [
    {
    "source": "/assets/*",
    "destination": "/assets-new/:splat"
    }
    ],
    "headers": [
    {
    "source": "/(.*)",
    "headers": [
    {
    "key": "X-Frame-Options",
    "value": "DENY"
    },
    {
    "key": "Cache-Control",
    "value": "max-age=7200"
    }
    ]
    },
    {
    "source": "/assets/*",
    "headers": [
    {
    "key": "Cache-Control",
    "value": "max-age=31536000"
    }
    ]
    }
    ]
    }
    
    对应的 edgeone.json 配置:
    {
    "redirects": [
    {
    "source": "/articles",
    "destination": "/blog",
    "statusCode": 301
    }
    ],
    "rewrites": [
    {
    "source": "/assets/*",
    "destination": "/assets-new/:splat"
    }
    ],
    "headers": [
    {
    "source": "/*",
    "headers": [
    {
    "key": "X-Frame-Options",
    "value": "DENY"
    },
    {
    "key": "Cache-Control",
    "value": "max-age=7200"
    }
    ]
    },
    {
    "source": "/assets/*",
    "headers": [
    {
    "key": "Cache-Control",
    "value": "max-age=31536000"
    }
    ]
    }
    ]
    }
    注意: EdgeOne Pages 的配置语法与 Vercel 非常相似,但可能存在一些细微差别。详细的配置选项请参考 edgeone.json 文档
    

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

    两个平台在语法和使用方式上有一些差异。以下是一个简单的对比示例:
    
    Vercel Functions 的 Hello World:
    export const dynamic = 'force-dynamic';
    export function POST(request) {
    return new Response(`Hello world`);
    }
    
    Pages Functions 的 Hello World:
    export default function onRequestPost(context) {
    return new Response(`Hello world`);
    }
    
    主要差异:
    Pages 使用 onRequest 系列函数(如 onRequestPost)来处理不同的 HTTP 方法。
    Pages Functions 接收一个 context 对象,包含了请求信息、环境变量等。
    响应方式类似,都使用 Response 对象。
    说明:
    Pages¸Functions 支持 Node Functions 跟 Edge Functions,两者在特性上会有些许差异,如 context 对象,可根据您的具体需求进行选择。
    
    迁移建议:
    将导出函数改为 onRequest 系列函数。
    如果使用了 Vercel 特有的功能,可能需要寻找其他方案,可通过社群联系我们。
    
    详细的函数使用可以参考 Pages Functions 文档
    

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

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

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

    迁移步骤:
    1. 在项目设置中添加您的自定义域名,获取 CNAME 记录值。
    2. 登录您的 DNS 服务商控制台。
    3. 删除之前为 Vercel 设置的 A、AAAA 或 CNAME 记录。
    4. 添加新的 CNAME 记录,指向 EdgeOne Pages 提供的新值。
    5. 等待 DNS 更新生效(可能需要几分钟到几小时)。
    
    注意: 如果您之前使用 Vercel DNS,需要将域名转移到其他 DNS 服务商,然后按上述步骤配置 CNAME 记录。
    
    详细的域名添加过程可以参考 域名管理 文档。
    
    通过完成上述步骤,您已经成功将 Vercel 项目迁移到了 EdgeOne Pages。两个平台在某些方面有相似之处,但 Pages 提供了在中国地区更优化的访问体验。在强大的基础设施上,我们针对 Pages 产品特点进行了智能刷新预热等优化,提供开箱即用的使用体验。此外,Pages 在公测阶段相对竞品限制更少,为开发者提供更多选择的灵活性。在客户支持上,我们提供更及时的响应,致力于为开发者打造优质的产品体验。
    
    如果您在迁移过程中遇到任何问题,欢迎查阅 EdgeOne Pages 的官方文档