React 权威部署指南

部署您的
React 应用

拒绝复杂的 Nginx 配置。拒绝 GitHub Pages 的龟速访问。 我们为 React 单页应用 (SPA) 提供开箱即用的 History Mode 支持和国内极速 CDN

可以教我打包吗?
package.json
"name": "my-react-app",
"scripts": {
"build": "vite build"
},
"dependencies": {
"react": "^18.2.0"
"react-dom": "^18.2.0"
}
已自动识别 React 项目

点击选择文件或 Zip 包

支持 .html, .zip, .pdf, .png, .jpg

技术深度解析:为什么 React 部署后刷新会 404?

SPA (单页应用) 的路由陷阱

React 应用通常是 Single Page Application (SPA)。这意味着整个网站只有一个真实的 HTML 文件:index.html。 所有的页面切换(如从 / 跳转到 /about)都是由 JavaScript 在浏览器端通过 History API 模拟的,并没有向服务器请求新的 HTML 文件。

当你点击链接跳转时,React Router 会拦截点击事件,修改 URL,然后重新渲染组件。这一切都很完美。

⚠️ 问题这生在刷新时

但是,当用户在 /about 页面点击刷新按钮,或者直接分享这个链接给朋友时,浏览器会向服务器发送一个真实的 HTTP 请求:GET /about

对于传统的静态文件服务器(如 Nginx 或 Apache),它会在硬盘上寻找名为 about 的文件或文件夹。显然,它找不到。 因为你的硬盘上只有 index.html。于是服务器返回 404 Not Found

GET /about 404 (Not Found) --> 传统的服务器响应

✅ 上码 的解决方案

为了解决这个问题,我们在边缘节点 (Features Edge) 配置了智能的重写规则 (Rewrite Rules)。 当服务器收到请求时,如果找不到对应的文件,它不会直接返回 404

相反,它会将请求内部重定向 (Internal Rewrite) index.html,并返回 200 状态码。 浏览器收到 index.html 后,加载 React 代码,React Router 再次接管路由,根据当前的 URL (/about) 渲染出正确的 About 组件。

我们的核心优势

这一切都是全自动的。您无需编写 nginx.conf,也无需配置 _redirects 文件。 只需上传您的 dist 文件夹,我们自动处理所有路由逻辑。

新手教程:从零开始部署 React

1

创建与开发

如果您还没有项目,推荐使用 Vite 快速创建(比 CRA 更快)。

npm create vite@latest my-app -- --template react
cd my-app
npm install
npm run dev
2

打包构建 (Build)

这是一个关键步骤。我们不能直接上传源代码 (src),而要上传构建后的产物。

npm run build

# 输出结果通常包括:

dist/
├── index.html
└── assets/
├── index-d4e5f6.js
└── index-a1b2c3.css
3

拖拽上传

找到项目目录下的 dist 文件夹(如果是 old version Create-React-App 可能是 build)。

整个文件夹直接拖入页面上方的上传框。不要只拖 index.html。

4

上线与验证

获得 HTTPS 链接后(如 https://cool-app.website-deploy.com),试着访问它。

Pro Tip: 试着点击页面里的链接,然后刷新浏览器。如果页面没有变成 404,说明 SPA 路由配置成功!

为什么国内开发者应该选择我们?

很多教程推荐 GitHub Pages 或 Vercel/Netlify。它们在国外很棒,但在国内访问速度极慢,甚至经常无法访问。以下是真实环境下的延迟测试数据 (2025年12月):

托管平台技术栈国内平均延迟 (Ping)丢包率稳定性
上码 (Upma)
多边缘节点 / 香港 CN245 ms<1%⭐⭐⭐⭐⭐
GitHub PagesFastly (主要在美西)280 ms15%⭐⭐⭐
Vercel / NetlifyAWS Global> 350 ms25% (部分阻断)⭐⭐

* 数据来源于全国 34 个省市的电信/联通/移动节点平均值

React 部署常见问题

Q: 我的页面打开是空白的 (White Screen),怎么办?

这通常是因为 'homepage' 路径配置错误。请检查您的 package.json。如果您是部署到根路径,请确保没有设置 homepage,或者设置为 '.'。在 Vite 中,请检查 base 配置是否为 '/'。

Q: 我需要修改 nginx.conf 吗?

完全不需要。我们是 Serverless 架构,底层自动为您处理了所有 Nginx 相关的路由重写规则。您只需要专注于写代码。

Q: 支持环境变量 (.env) 吗?

前端构建是在您本地完成的。所以您在运行 `npm run build` 时,本地的 .env 文件已经被打包进了 JS 中。我们托管的是静态产物,不涉及运行时的 Node.js 环境,所以不需要在服务器配置 ENV。

Q: 如何配置自定义域名?

部署成功后,在控制台点击项目设置 -> 域名管理。输入您的域名(如 app.yourname.com),然后按照提示添加一条 CNAME 记录即可。我们会自动为您申请并续期 SSL 证书。

Q: 我可以部署 Next.js 吗?

可以,但仅限静态导出模式。请在 next.config.js 中设置 output: 'export'。如果您需要 SSR (服务端渲染),本服务暂不支持,建议使用 Vercel。

Q: 上传文件大小有限制吗?

免费版单次上传支持最大 100MB 的压缩包。对于普通的 React 应用来说绰绰有余(通常 dist 目录只有几 MB)。