Typecho 静态化可通过生成 HTML 文件或配置 CDN 回源实现,配合 CDN 加速时需确保管理后台路径不被缓存。核心风险在于错误缓存 PHP 动态文件导致网站无法登录或更新。
先说结论:静态化适合高流量博客降低服务器负载,配合 CDN 加速需严格区分静态资源与动态程序。
- 适合:图片/css/js 资源较多或希望降低源站带宽压力的场景
- 先准备:备案域名、对象存储桶(OSS/COS)或 CDN 服务账号
- 验收:前台资源链接变更为 CDN 域名且后台管理功能正常
快速处理思路
优先使用 CDN 加速静态资源而非全站静态化,除非有离线备份需求。若使用插件静态化,需单独配置后台访问规则避免被缓存。
为什么会这样
静态化减少数据库查询,CDN 边缘节点分担带宽压力。Typecho 作为动态程序,管理后台依赖 PHP 执行,若被 CDN 缓存会导致功能失效。
分步处理
第一步:选择静态化方案。可使用 GitStatic 插件或手动生成 HTML 文件,若仅加速资源则修改主题路径配置。
第二步:配置 CDN 回源。在 CDN 控制台设置源站为服务器 IP 或对象存储桶,业务类型选择静态加速。
第三步:修改 Typecho 配置。在根目录 config.inc.php 定义 CDN 域名,修改 Widget/Options.php 中的主题和插件路径获取函数。
第四步:设置缓存规则。CDN 控制台设置图片/css/js 缓存时间长,php 文件缓存时间为 0 秒。
怎么验证是否生效
查看网页源代码中 css、js 和图片链接是否已变为 CDN 域名。强制刷新页面后检查后台登录及文章发布功能是否正常。
常见坑
错误缓存 php 文件会导致后台无法登录。未配置 HTTPS 证书会导致混合内容警告。源站 IP 暴露可能遭受 DDoS 攻击。
常见问题
静态化插件会影响 SEO 吗?
合理配置不会影响,静态 HTML 更易被搜索引擎抓取,但需确保 canonical 标签正确。
CDN 加速后图片无法显示怎么办?
检查对象存储桶权限是否为公共读,并确认 CORS 跨域设置已放行。
管理后台出现 404 或缓存旧页面如何处理?
在 CDN 控制台设置后台目录缓存过期时间为 0,并清除 CDN 缓存。
参考来源
- typecho 设置 cdn 实现全站加速
- 全站开启 css、js 静态资源 cdn 加速!(针对主题没有此功能)
- 教你利用腾讯云 cdn 加速网站静态资源
- Typecho 博客全站部署腾讯云 CDN 教程 - 星泽 V 社
- typecho 完全静态化
- Typecho 博客集成阿里云 CDN+OSS 实现全站加速方案
- Typecho+ 阿里云 CDN 完整配置:防止 DDoS 攻击与 IP 暴露