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

# 应用部署

> 通过 Cascade 工具调用，直接在 Devin Desktop 中将 Web 应用部署到 Netlify，并获得公开 URL、自动构建和项目认领功能，支持 Next.js、React、Vue 和 Svelte。

应用部署让你能够通过 Cascade 工具调用，直接在 Devin Desktop 中部署 Web 应用和网站。借助此功能，你可以通过公开 URL 分享成果、更新部署，并认领项目以进行进一步自定义。该功能目前处于测试阶段，更多框架支持、更强大的构建能力等也即将推出。

<Frame>
  <img src="https://mintcdn.com/cognitionai/hxeMffzXgF_RWx-U/desktop/assets/windsurf/cascade/app-deploys-ui.png?fit=max&auto=format&n=hxeMffzXgF_RWx-U&q=85&s=874c98c462094169ac798cecca2a6221" width="2072" height="576" data-path="desktop/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/cognitionai/hxeMffzXgF_RWx-U/desktop/assets/windsurf/cascade/app-deploys-demo1.mp4?fit=max&auto=format&n=hxeMffzXgF_RWx-U&q=85&s=e2e734de5e247eb6d310f90e657da37f" data-path="desktop/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 这样提问：

```
"Deploy this project to Netlify"
"Update my deployment"
```

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

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

<Note>你需要具备 Team Admin 权限才能启用或关闭此功能。</Note>

使用 Teams 和 Enterprise 套餐的用户可以将自己的 Netlify 账户与 Devin Desktop 账户连接，并部署到自己的 Netlify 团队。

你可以在团队设置中启用或关闭此功能，可通过 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 问题，并让你的使用体验保持干净整洁。

Devin Desktop 站点由人类和 AI 共同构建。虽然我们会引导 AI 尽量遵循最佳实践，但保持谨慎仍然是明智的。对于由用户部署的站点所导致的问题，Devin Desktop 概不负责。

<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/cognitionai/hxeMffzXgF_RWx-U/desktop/assets/windsurf/cascade/netlify-site-not-found.png?fit=max&auto=format&n=hxeMffzXgF_RWx-U&q=85&s=3d3f9ec85716d984c8da2d3847b28afa" width="2430" height="1618" data-path="desktop/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. 创建新部署时，你可以在点击“Deploy”按钮之前，先点击子域名界面上的“Edit”按钮进行修改

<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/cognitionai/hxeMffzXgF_RWx-U/desktop/assets/windsurf/cascade/app-deploys-download-config-file.png?fit=max&auto=format&n=hxeMffzXgF_RWx-U&q=85&s=fbbc9d8789e65ff8926bd8dad20e828d" width="1966" height="1408" data-path="desktop/assets/windsurf/cascade/app-deploys-download-config-file.png" />
</Frame>
