[TITLE]
在 Odoo 网站上使用 KeyCDN 设置内容分发网络 (CDN) 的完整指南

[DESCRIPTION]
本文详细介绍如何在 Odoo 网站中创建并配置 KeyCDN 拉取区域,启用 CDN 与 CORS 设置,确保资源加速与跨域安全,适用于开发者快速部署内容分发网络。

[KEYWORDS]
Odoo,KeyCDN,CDN,内容分发网络,拉取区域,CORS,跨域资源共享,网站加速,区域配置,开发者模式

[TRANSLATED_CONTENT]

# 设置内容分发网络 (CDN)

## 使用 KeyCDN 部署 {#reference/cdn/keycdn}

`CDN(内容分发网络)` 是一个地理分布的服务器网络,用于提供高速的互联网内容。`CDN(内容分发网络)` 为内容密集型网站提供快速、高质量的内容交付。

本文档将指导你如何在使用 Odoo 的网站上配置一个
[KeyCDN](https://www.keycdn.com) 账户。

### 在 KeyCDN 仪表盘创建 Pull Zone

在 KeyCDN 仪表盘,首先导航到左侧的 `Zones` 菜单项。  
在表单中,为 `Zone Name` 填写一个值,该值将作为 `CDN(内容分发网络)``URL(统一资源定位符)` 的一部分。随后,将 `Zone Status` 设置为 `active` 以启用该区域。`Zone Type` 请选择 `Pull`,最后在 `Pull Settings` 中输入 `Origin URL`——此地址应为完整的 Odoo 数据库 `URL(统一资源定位符)`
::: example
使用 `https://yourdatabase.odoo.com`,并将 *yourdatabase* 子域名前缀替换为实际的数据库名称。也可以使用自定义的 `URL(统一资源定位符)`,代替提供给数据库的 Odoo 子域名。
:::

![KeyCDN 的 Zone 配置页面。](cdn/keycdn-zone.png){.align-center}

在表单下方的 `General Settings` 标题下,点击 `Show all settings` 按钮展开更多选项。这是页面的最后一个选项。展开 `General Settings` 后,确保 `CORS` 选项被 **启用**
接着,滚动到区域配置页面底部,`Save` 保存更改。KeyCDN 会提示新区域正在部署,整个过程约需 **10 分钟**
![KeyCDN 正在部署新 Zone。](cdn/zone-url.png){.align-center}

:::: note
::: title
注意
:::

系统已为你的 Zone 生成了新的 `Zone URL`,例如 `pulltest-xxxxx.kxcdn.com`。该值会因每个数据库而不同。
::::

将此 `Zone URL` 复制到文本编辑器中备用,后续步骤会用到。

### 在 Odoo 实例中配置新 Zone

在 Odoo 的 `Website` 应用中,进入 `Settings`,激活 `Content Delivery Network (CDN)` 设置,并将前一步复制的 `Zone URL` 粘贴到 `CDN Base URL` 字段。该字段仅在 **开发者模式** (`developer mode <developer-mode>`) 启用时可见并可编辑。

:::: note
::: title
注意
:::

确保 `CDN Base URL` 前面有两个斜杠(`//`),后面跟一个斜杠(`/`)。
::::

完成后 **保存** 设置。

![在 Odoo 中激活 CDN 设置。](cdn/cdn-base-url.png){.align-center}

此时网站已使用 CDN 加速符合 `CDN filters` 正则表达式的资源。

在 Odoo 网站的 HTML 中,可通过检查图片的 `URL(统一资源定位符)` 来验证 `CDN(内容分发网络)` 集成是否正常工作。使用浏览器的 `Inspect` 功能,在 `Network` 选项卡中搜索即可看到 `CDN Base URL` 的记录。

![使用 Inspect 功能查看 Odoo 网站上的 CDN Base URL。](cdn/test-pull.png){.align-center}

### 通过启用跨域资源共享 (CORS) 防止安全问题

某些浏览器(如 Mozilla Firefox、Google Chrome)会限制远程链接的 CSS 文件获取同一外部服务器上的相对资源。

如果在 `CDN Zone` 中未启用 `CORS(跨域资源共享)`,在标准 Odoo 网站上最明显的问题是 **Font Awesome** 图标缺失,因为在 **Font Awesome** CSS 中声明的字体文件无法从远程服务器加载。

当出现跨域资源问题时,浏览器的开发者控制台会显示类似以下的安全错误信息:

`Font from origin 'http://pulltest-xxxxx.kxcdn.com' has been blocked from loading /shop:1 by Cross-Origin Resource Sharing policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://yourdatabase.odoo.com' is therefore not allowed access.`

![浏览器控制台中出现的错误信息。](cdn/odoo-security-message.png){.align-center}

`CDN(内容分发网络)` 设置中启用 `CORS(跨域资源共享)` 选项即可解决此问题。  

[SUMMARY]

# 设置内容分发网络 (CDN)
## 使用 KeyCDN
### 创建 Pull Zone
- 进入 KeyCDN 仪表盘 → Zones
- 填写 Zone Name、设置 Status 为 active、Type 为 Pull
- 在 Pull Settings 填写 Origin URL(完整 Odoo 数据库 URL)
- 展开 General Settings,启用 CORS
- 保存并部署(约 10 分钟)
### 配置 Odoo 实例
- 在 Odoo Website → Settings 中启用 CDN
- 粘贴 Zone URL 到 CDN Base URL(需开发者模式)
- 确认前缀 `//` 与后缀 `/`
- 保存设置
### 验证 CDN 工作
- 检查页面资源 URL 是否使用 CDN 域名
- 使用浏览器 Inspect → Network 查看 CDN Base URL
### 处理跨域安全问题
- 未启用 CORS 会导致 Font Awesome 图标缺失
- 浏览器控制台会报跨域错误
- 在 CDN 区域启用 CORS 解决问题