最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

PHP 老网站改造:typecho 动静分离

网站源码admin2浏览0评论

PHP 老网站改造:typecho 动静分离

通过实施动静分离架构,将静态资源(如图片、脚本、样式表等)部署至独立二级域名,并整合第三方CDN全球加速服务及云对象存储方案,可显著优化网站性能指标。

此策略可同时实现:

  • 利用浏览器多域名并发机制提升资源加载效率;
  • 通过CDN边缘节点缓存降低网络延迟,改善用户访问体验;
  • 云存储服务弹性扩展能力有效降低服务器带宽压力和运维成本。

从SEO维度考量,独立资源域名可规避主域Cookie污染,配合CDN智能调度形成的全球加速网络,更有利于搜索引擎爬虫抓取效率及网站权重提升,形成"用户体验-访问速度-搜索排名"的正向循环优化体系。

下面介绍在 typecho 中实现动静分离的步骤:

分离主题静态文件

静态文件 Nginx 配置

如果不使用第三方CDN对象存储服务,那仅需要在 nginx 配置中添加一个 server 就行。

代码语言:javascript代码运行次数:0运行复制
server {
   listen 80;
   server_name static.yangqi.co;

   # 这里直接将 root 目录指向主题主目录地址
   root /opt/usr/themes;

   location ~* ^.+\.(css|js|ico|gif|jpg|jpeg|png|map)$ {
       log_not_found off;
       # 关闭日志
       access_log off;
       # 缓存时间7天
       expires 30d;
   }
   
   # 不用 PHP 配置,更安全
}

更改模板输出的静态文件链接

  1. 最简单直接的修改方法,将模板文件中
代码语言:javascript代码运行次数:0运行复制
    <link rel="stylesheet" href="<?php $this->options->themeUrl('normalize.css'); ?>">
    <link rel="stylesheet" href="<?php $this->options->themeUrl('grid.css'); ?>">
    <link rel="stylesheet" href="<?php $this->options->themeUrl('style.css'); ?>">

改为静态域名地址:

代码语言:javascript代码运行次数:0运行复制
    <link rel="stylesheet" href="//static.yangqi.co/normalize.css">
    <link rel="stylesheet" href="//static.yangqi.co/grid.css">
    <link rel="stylesheet" href="//static.yangqi.co/style.css">
  • 缺点: 以后切换成其他模板时,都得手动改一次
  1. config.inc.php 文件中增加常量

通过代码分析,发现只需要定义常量 __TYPECHO_THEME_URL__ 的值,就可以实现静态资源地址的修改

  • 缺点: 无法适配多个主题,因为定义 __TYPECHO_THEME_URL__ 后,$this->options->themeUrl() 方法将不会再拼接当前主题模板名称
  1. 静态资源插件

为了方便配置修改,我简单的手撸了一个插件,通过该插件可方便的修改静态资源地址

静态资源配置插件

注意:静态化模式设置为 仅当前主题 后,需要将 nginx 配置中 root 设置为当前主题的子目录,如 /opt/usr/themes/default

  • 优势: 静态化模式设置为 themes 主目录 后,会自动拼接当前主是名称,从而支持多主题的静态资源共存

分离插件静态文件

插件静态文件的分离比较简单:

  1. config.inc.php 中增加常量:
代码语言:javascript代码运行次数:0运行复制
const __TYPECHO_PLUGIN_URL__ = '//plugins.yangqi.co'
  1. 再按上面 静态文件 Nginx 配置 ,修改 server_name,修改 root 指向插件目录:
代码语言:javascript代码运行次数:0运行复制
server {
   server_name plugins.yangqi.co;

   root /opt/usr/plugins;

   # 其他配置不变,省略……
}

原文链接: PHP 老网站改造:typecho 动静分离

版权声明: 本站所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

发布评论

评论列表(0)

  1. 暂无评论