Typecho 配置 CDN 加速的核心是将静态资源链接替换为 CDN 域名,适用于图片、CSS 和 JS 文件较多的博客场景。操作前需确保 CDN 域名已完成 CNAME 解析且 HTTPS 证书配置正确,避免混合内容警告。
先说结论:通过修改站点配置或主题设置将静态资源指向 CDN 域名,可有效分担源站带宽压力。
- 适合:静态资源占比高、源站带宽有限或用户地域分布广的 Typecho 站点。
- 先准备:确认 CDN 服务商提供的 CNAME 地址已完成 DNS 解析并生效。
- 验收:使用浏览器开发者工具检查静态资源请求是否返回 CDN 节点 IP 或特定响应头。
快速处理思路
最通用的方法是在 Typecho 根目录的 config.inc.php 或 functions.php 中定义静态资源常量,部分主题支持直接在后台设置 CDN 地址。
若主题支持 CDN 设置,优先在主题后台填写 CDN 域名;若不支持,需在代码层面过滤资源链接。
为什么会这样
CDN 通过分布式节点缓存静态文件,用户请求时由距离最近的节点响应。这减少了源站直接传输大文件的时间,但动态 PHP 请求仍由源站处理。
Typecho 默认使用站点 URL 拼接静态资源路径,配置 CDN 本质是替换这个基础 URL 前缀,使浏览器请求指向 CDN 边缘节点而非源站服务器。
分步处理
第一步:获取 CDN 加速域名,确保该域名已 CNAME 指向 CDN 服务商提供的地址。
第二步:修改 Typecho 配置,在根目录 config.inc.php 文件中添加以下代码,替换示例域名为实际 CDN 域名:
define("__TYPECHO_STATIC_URL__", "https://cdn.example.com");
第三步:若主题有独立静态资源目录,需在主题 functions.php 中使用过滤器替换 URL,确保图片路径也被接管。
第四步:登录 CDN 控制台刷新缓存,确保旧资源被新配置覆盖。
怎么验证是否生效
打开博客前台页面,按 F12 进入浏览器开发者工具,切换到 Network(网络)标签页。
刷新页面,筛选 CSS、JS 或 Img 资源,查看请求 URL 是否已变为 CDN 域名。
检查响应头(Response Headers),确认存在 CDN 服务商特有的标识字段,如 CF-Ray 或 X-Cache 命中状态。
常见坑
配置 CDN 后后台样式丢失,通常是因为静态资源常量同时影响了后台路径,需确认配置是否排除了 admin 目录。
HTTPS 站点使用 HTTP 的 CDN 域名会触发混合内容警告,导致浏览器拦截资源,确保 CDN 域名强制开启 HTTPS。
动态生成的图片链接未被替换,部分主题直接输出完整 URL 而非调用辅助函数,需手动修改主题模板文件。
常见问题
配置 CDN 后后台会受影响吗?
配置不当会导致后台 CSS 加载失败,建议排除后台路径或使用支持分离设置的插件。
图片不显示怎么办?
检查 CDN 域名是否已绑定且资源已同步到 CDN 存储桶,确认源站文件权限允许 CDN 抓取。
需要修改数据库吗?
通常不需要,通过代码定义常量即可生效,除非历史文章内嵌了绝对路径的图片链接。