# 使用 Cloudflare 配置子目录

{% stepper %}
{% step %}

### 配置你的 GitBook 网站

在你的 GitBook 组织中，点击侧边栏中的文档站点名称，然后点击 **管理站点** ，或者打开 **设置** 标签页。打开 **域名和重定向** 部分，在“子目录”下，点击 **设置子目录**.

输入你希望托管文档的 URL。然后指定文档访问的子目录，例如 `tomatopy.pizza/docs`，然后点击 **配置**.

在 **其他配置**，现在您将看到一个代理 URL。配置 Cloudflare worker 时，下一步会用到它。将其复制到剪贴板。
{% endstep %}

{% step %}

### 创建您的 Cloudflare worker

登录您的 Cloudflare 账户并导航到 **Workers & Pages**

点击 **创建** 按钮。&#x20;

在“创建应用程序”界面中，点击 **Hello world** “从模板开始”卡片中的按钮。

给 worker 起一个更具描述性的名称，例如 `mydocs-subpath-proxy`。完成 worker 重命名后，点击 **Deploy**.&#x20;
{% endstep %}

{% step %}

## 配置您的自定义域

您的 worker 将获得一个可用的默认 URL。若要改为配置您的自定义域（例如 `tomatopy.pizza`），请点击 **设置。** 然后，在“域名和路由”部分中，点击 **+ 添加**.

在打开的“域名和路由”抽屉中，点击 **自定义域名**，然后在接下来的文本框中输入您的自定义域。指定自定义域时， *不要* 包含子目录。例如， `tomatopy.pizza` 是正确的，而 `tomatopy.pizza/docs` 不是。&#x20;
{% endstep %}

{% step %}

### 更新 worker 代码

当 worker 完成部署后，点击 **编辑代码**，或点击 **继续到项目**，然后点击 **编辑代码** 右上角的按钮。&#x20;

在打开的代码编辑器中，将示例代码替换为以下代码片段：

{% code lineNumbers="true" %}

```javascript
export default {
  fetch(request) { 
    const SUBDIRECTORY = '/docs';
    const url = new URL(request.url);
    const target = "<INSERT YOUR PROXY URL FROM GITBOOK>" + url.pathname.slice(SUBDIRECTORY.length);
    const proxy = new URL(
      target.endsWith('/') ? target.slice(0, -1) : target 
    )
    proxy.search = url.search;
    return fetch(new Request(proxy, request));
  }
};
```

{% endcode %}

{% hint style="info" %}
请务必将第 5 行中的 URL 更新为您在第一步从 GitBook 获取的代理 URL。
{% endhint %}

完成后，点击 **Deploy**。此过程可能需要几分钟。完成后，访问该 URL 时，您应该能看到您的文档站点！
{% endstep %}
{% endstepper %}
