通过实施动静分离架构,将静态资源(如图片、脚本、样式表等)部署至独立二级域名,并整合第三方CDN全球加速服务及云对象存储方案,可显著优化网站性能指标。
此策略可同时实现:
从SEO维度考量,独立资源域名可规避主域Cookie污染,配合CDN智能调度形成的全球加速网络,更有利于搜索引擎爬虫抓取效率及网站权重提升,形成"用户体验-访问速度-搜索排名"的正向循环优化体系。
下面介绍在 typecho
中实现动静分离的步骤:
如果不使用第三方CDN
及对象存储
服务,那仅需要在 nginx
配置中添加一个 server
就行。
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 配置,更安全
}
<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'); ?>">
改为静态域名地址:
<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">
config.inc.php
文件中增加常量通过代码分析,发现只需要定义常量 __TYPECHO_THEME_URL__
的值,就可以实现静态资源地址的修改
__TYPECHO_THEME_URL__
后,$this->options->themeUrl()
方法将不会再拼接当前主题模板名称为了方便配置修改,我简单的手撸了一个插件,通过该插件可方便的修改静态资源地址
注意:静态化模式设置为
仅当前主题
后,需要将nginx
配置中root
设置为当前主题的子目录,如/opt/usr/themes/default
themes 主目录
后,会自动拼接当前主是名称,从而支持多主题的静态资源共存插件静态文件的分离比较简单:
config.inc.php
中增加常量:const __TYPECHO_PLUGIN_URL__ = '//plugins.yangqi.co'
server_name
,修改 root 指向插件目录:server {
server_name plugins.yangqi.co;
root /opt/usr/plugins;
# 其他配置不变,省略……
}
原文链接: PHP 老网站改造:typecho 动静分离
版权声明: 本站所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。