目录
article
[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 子域名。
:::
{.align-center}
在表单下方的 `General Settings` 标题下,点击 `Show all settings` 按钮展开更多选项。这是页面的最后一个选项。展开 `General Settings` 后,确保 `CORS` 选项被 **启用**。
接着,滚动到区域配置页面底部,`Save` 保存更改。KeyCDN 会提示新区域正在部署,整个过程约需 **10 分钟**。
{.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` 前面有两个斜杠(`//`),后面跟一个斜杠(`/`)。
::::
完成后 **保存** 设置。
{.align-center}
此时网站已使用 CDN 加速符合 `CDN filters` 正则表达式的资源。
在 Odoo 网站的 HTML 中,可通过检查图片的 `URL(统一资源定位符)` 来验证 `CDN(内容分发网络)` 集成是否正常工作。使用浏览器的 `Inspect` 功能,在 `Network` 选项卡中搜索即可看到 `CDN Base URL` 的记录。
{.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.`
{.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 解决问题