> ## Documentation Index
> Fetch the complete documentation index at: https://docs.windsurf.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 应用部署

> 通过 Windsurf 中的 Cascade 工具调用，将 Web 应用直接部署到 Netlify，并支持公开 URL、自动构建以及对 Next.js、React、Vue 和 Svelte 项目的认领。

应用部署让你可在 Windsurf 内通过 Cascade 的工具调用直接部署 Web 应用和站点。你可以通过公开 URL 分享成果、更新部署，并认领项目以便进一步自定义。该功能当前处于测试版，后续将很快支持更多框架、更稳健的构建等。

<Frame>
  <img src="https://mintcdn.com/codeium/qJj_RRojefb93yIg/assets/windsurf/cascade/app-deploys-ui.png?fit=max&auto=format&n=qJj_RRojefb93yIg&q=85&s=af9bd2cc96a163d94b37138e4b07175b" width="2072" height="576" data-path="assets/windsurf/cascade/app-deploys-ui.png" />
</Frame>

<div id="overview">
  ## 概览
</div>

通过应用部署，你可以：

* 将网站或 JS Web 应用部署到公共域名
* 在更改后重新部署到同一 URL
* 将项目认领到你的个人账号

<Warning>
  应用部署主要用于预览。对于包含敏感数据的生产环境应用，我们建议先认领你的部署，并遵循安全最佳实践。
</Warning>

<div id="supported-providers">
  ## 支持的提供商
</div>

我们目前支持以下部署提供商：

* **Netlify** - 适用于静态网站和 Web 应用

<Note>我们计划在后续版本中支持更多提供商。</Note>

<div id="how-it-works">
  ## 工作原理
</div>

当你使用应用部署时，我们会将你的代码上传到我们的服务器，并通过我们名下的账户将其部署到相应的服务提供商。部署完成的网站将可通过以下格式的公开 URL 访问：

```
<SUBDOMAIN_NAME>.windsurf.build
```

<video autoPlay muted loop playsInline className="w-full aspect-video" src="https://mintcdn.com/codeium/qJj_RRojefb93yIg/assets/windsurf/cascade/app-deploys-demo1.mp4?fit=max&auto=format&n=qJj_RRojefb93yIg&q=85&s=844977e5cf94c8393e2418bdaec2e921" data-path="assets/windsurf/cascade/app-deploys-demo1.mp4" />

<div id="deployment-process">
  ### 部署流程
</div>

1. Cascade 会分析你的项目，以确定适合的框架
2. 你的项目文件会被安全地上传到我们的服务器上
3. 部署会在服务提供商的平台上创建
4. 你会收到一个公开 URL 和一个认领链接

<div id="project-configuration">
  ### 项目配置
</div>

为便于重新部署，我们会在项目根目录创建一个 `windsurf_deployment.yaml` 文件。该文件包含未来部署所需的信息，例如项目 ID 和所用框架。

<div id="using-app-deploys">
  ## 使用应用部署
</div>

要部署你的应用程序，只需向 Cascade 这样请求：

```
"将此项目部署到 Netlify"
"更新我的部署"
```

Cascade 将引导你完成整个流程，并帮助你排查常见问题。

<div id="team-deploys">
  ## 团队部署
</div>

<Note> 您需要拥有团队管理员权限才能启用或停用此功能。</Note>

使用 Teams 和 Enterprise 订阅的用户可以将其 Netlify 账号与 Windsurf 账号连接，并部署到其 Netlify 团队。

此功能可在 Team Settings 中启用或停用，您可以通过 Profile 页面进入，或者点击[这里](https://windsurf.com/team/settings)访问。

<div id="security-considerations">
  ## 安全注意事项
</div>

<Warning>
  您的代码将被上传到我们的服务器以进行部署。请仅部署您愿意公开分享的代码。
</Warning>

我们采取多项措施以确保安全：

* 文件大小限制与校验
* 基于您账户套餐的请求速率限制
* 项目文件的安全处理

如需进一步保护隐私，请访问 [clear-cookies.windsurf.build](https://clear-cookies.windsurf.build)，检查并清除由 `windsurf.build` 域下站点设置的任何 cookie。若发现存在 cookie，说明它们不应存在；清除它们有助于防止跨站点 cookie 问题，并保持干净的使用体验。

Windsurf 站点由人类与 AI 共同构建。尽管我们鼓励 AI 采用最佳实践，保持谨慎始终明智。对于用户部署站点所引发的问题，Windsurf 不承担责任。

<div id="claiming-your-deployment">
  ## 认领你的部署
</div>

部署完成后，你会收到一个认领链接（URL）。通过该链接，你可以在个人服务提供商账户中认领该项目，从而获得：

* 对部署的完全控制权
* 访问服务提供商特定功能
* 修改域名
* 直接访问日志和构建信息

<Note>
  未认领的部署可能会在一段时间后被删除。建议尽快认领重要项目。
</Note>

<div id="rate-limits">
  ## 速率限制
</div>

为防止滥用，我们对不同套餐施加以下速率限制：

| 套餐   | 每日可部署次数 | 未认领站点上限 |
| ---- | ------- | ------- |
| Free | 1       | 1       |
| Pro  | 10      | 5       |

<div id="supported-frameworks">
  ## 支持的框架
</div>

应用部署适用于大多数主流的 JavaScript 框架，包括：

* Next.js
* React
* Vue
* Svelte
* 静态 HTML/CSS/JS 站点

<div id="troubleshooting">
  ## 故障排查
</div>

<div id="failed-deployment-build">
  ### 部署构建失败
</div>

如果部署失败：

1. 检查 Cascade 提供的构建日志
2. 确保项目可在本地构建（运行 `npm run build` 进行测试）
3. 确认项目遵循所用框架的推荐结构
4. 查看文档，了解如何通过 `netlify.toml` 将[所用框架部署到 Netlify](https://docs.netlify.com/configure-builds/file-based-configuration/)
5. 考虑认领该项目，以在提供商的控制台查看详细日志

<Warning>
  我们无法对特定框架的构建错误提供直接支持。若部署因代码问题失败，请在本地调试，或认领项目以便与提供商的支持团队协作处理。
</Warning>

<div id="netlify-site-not-found">
  ### 未找到 Netlify 站点
</div>

<Frame>
  <img src="https://mintcdn.com/codeium/qJj_RRojefb93yIg/assets/windsurf/cascade/netlify-site-not-found.png?fit=max&auto=format&n=qJj_RRojefb93yIg&q=85&s=80793d24da70db2cfd1021616c6db559" width="2430" height="1618" data-path="assets/windsurf/cascade/netlify-site-not-found.png" />
</Frame>

这通常意味着构建失败。请认领你的站点（可在[部署历史](https://windsurf.com/deploy)中找到），并查看构建日志以了解更多详情。很多情况下，你可以将构建日志粘贴到 Cascade 中寻求帮助。

<div id="changing-your-subdomain-url">
  ### 更改您的子域/URL
</div>

<div id="updating-netlifyapp-domain">
  #### 更新 `netlify.app` 域名
</div>

你可以通过认领部署并更新 Netlify 站点设置来更改子域名。这样会更新你的 `.netlify.app` 域名。

<div id="updating-custom-windsurfbuild-subdomain">
  #### 更新自定义 `.windsurf.build` 子域名
</div>

<Warning>
  部署完成后，您无法更改自定义的 `.windsurf.build` 子域名。您需要改为使用新的子域名部署一个新站点。
</Warning>

要更新自定义的 `.windsurf.build` 子域名，您需要使用新的子域名部署一个新站点：

1. 从项目中删除 `windsurf_config.yaml` 文件
2. 让 Cascade 部署一个带有新子域名的新站点，并告知它您想要使用的子域名
3. 建议开启一段新的对话或清除自动生成的记忆，以防 Cascade 尝试重新部署到旧的子域名
4. 创建新部署时，您可以在子域名界面上点击“Edit”按钮，在点击“Deploy”之前进行更新

<div id="error-unable-to-get-project-name-for-project-id">
  ### 错误：`Unable to get project name for project ID`
</div>

当系统中找不到你的项目 ID，或 Cascade 误将子域名当作项目 ID 使用时，会出现此错误。解决方法：

1. 确认该项目仍存在于你的 Netlify 账户中（前提是已认领）。
2. 检查 `windsurf_deployment.yaml` 文件中是否包含项目 ID。若未包含，你可以从[部署历史](https://windsurf.com/deploy)的下拉菜单下载配置文件。
3. 尝试重新部署，并明确指示 Cascade 使用 `windsurf_deployment.yaml` 文件中的 `project_id`。

<Frame>
  <img src="https://mintcdn.com/codeium/qJj_RRojefb93yIg/assets/windsurf/cascade/app-deploys-download-config-file.png?fit=max&auto=format&n=qJj_RRojefb93yIg&q=85&s=8e8633a61f54753db07de541413ace9c" width="1966" height="1408" data-path="assets/windsurf/cascade/app-deploys-download-config-file.png" />
</Frame>
