真正的Typecho非插件实现全站css,js,图片静态资源CDN加速 !阿里、腾讯、七牛、又拍云等通用!
2021/12/23 6:37:45
本文主要是介绍真正的Typecho非插件实现全站css,js,图片静态资源CDN加速 !阿里、腾讯、七牛、又拍云等通用!,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
首发自:我的 小天博客 首先说明一下为什么要整理这么一份全站非插件CDN加速的文章,以七牛云为例子;因为小天最近在找cdn插件的时候,在上传附件时候,网络上基本都只是上传到七牛云而不传本地,并且在插入到文章内容的时候,插入的也是cdn域名,后期这样非常不好;如果我不想用CDN了,难道要把cdn资源下载到本地,然后数据库文章内容里的cdn域名再一个个修改吗,太麻烦了;而且我想要的也不只是文章内容附件CDN,同时也要CSS、JS、文章外的图片等资源全部CDN加速。
2.文章附件用本地域名,但也要实现CDN加速。
3.文章外图片资源(博客logo、背景图、自定义图片等)CDN加速。
4.CSS和JS资源CDN加速。
5.要方便从CDN切换到本地。
文章内容附件和列表页缩略图保存的域名必须是本地域名,而不是cdn域名
1和2需求,其实只需要几行代码或者一个简单的插件就能实现。
这里小天是选择了插件,方便后台切换,只需要安装一个七牛云CDN链接替换插件即可,原理就是动态替换文章附件和列表缩略图的域名。
注意:这里理论上在七牛云配置镜像回源后,当访问本地资源时会自动镜像到七牛云,但是小天的不行,具体原因还不知道。目前的解决办法是:在文章上传附件(一般就是图片)时,手动镜像传一份到七牛云,现在网页上传或者用第三方工具都很方便,所以这不是问题。
实现CSS和JS资源CDN加速
1.操作之前,需要先把主题模板、插件等css、js等静态资源镜像传到七牛云。
2.打开Typecho主目录下的config.inc.php,在首行<?php 添加以下代码:
/* 定义cdn目录 */ define('__TYPECHO_CDN_DIR__', '你的cdn绑定域名/');
3.打开varWidgetOptions.php,大概152~174行,找到以下代码:
/** * 获取模板路径 * * @access protected * @return string */ protected function ___themeUrl() { return defined('__TYPECHO_THEME_URL__') ? __TYPECHO_THEME_URL__ : Typecho_Common::url(__TYPECHO_THEME_DIR__ . '/' . $this->theme,__TYPECHO_CDN_DIR__); } /** * 获取插件路径 * * @access protected * @return string */ protected function ___pluginUrl() { return defined('__TYPECHO_PLUGIN_URL__') ? __TYPECHO_PLUGIN_URL__ : Typecho_Common::url(__TYPECHO_PLUGIN_DIR__,__TYPECHO_CDN_DIR__); }
替换成下面:修改模板路径和插件路径
/** * 获取模板路径 * * @access protected * @return string */ protected function ___themeUrl() { return defined('__TYPECHO_THEME_URL__') ? __TYPECHO_THEME_URL__ : Typecho_Common::url(__TYPECHO_THEME_DIR__ . '/' . $this->theme,__TYPECHO_CDN_DIR__); } /** * 获取插件路径 * * @access protected * @return string */ protected function ___pluginUrl() { return defined('__TYPECHO_PLUGIN_URL__') ? __TYPECHO_PLUGIN_URL__ : Typecho_Common::url(__TYPECHO_PLUGIN_DIR__,__TYPECHO_CDN_DIR__); }
到现在为止,实现了文章附件、列表缩略图和CSS、JS资源CDN加速【想要切换到本地时候,只需要关闭插件和把config.inc.php里定义的CDN目录,替换成本地域名即可】
实现文章外图片资源(博客logo、背景图、自定义图片等)CDN加速
小天实现的方式是在根目录新建static文件夹,里面存放所有的这些自定义图片,然后把文件夹镜像传到七牛云,最后在不同的主题设置logo、背景图等路径时,填写CDN域名即可,切换时改回本地域名就可以了。
需要注意的地方:
1.自定义图片因为不常改,所以基本上传一遍到七牛云,就不会再修改了。
2.文章插入附件时,要记得也要镜像上传一遍到七牛云,路径是usr/uploads/2021/12/
3.主题模板、插件等css、js等静态资源镜像传到七牛云,这些资源基本也是传一遍不怎么修改的。
操作完上面的步骤,全站静态资源基本都实现了CDN加速;
以上只是小天根据自己的理解整理的,希望可以帮到你们,如果你们有更好的方式方法,我也希望可以去学习学习
这篇关于真正的Typecho非插件实现全站css,js,图片静态资源CDN加速 !阿里、腾讯、七牛、又拍云等通用!的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-16Vue3资料:新手入门必读教程
- 2024-11-16Vue3资料:新手入门全面指南
- 2024-11-16Vue资料:新手入门完全指南
- 2024-11-16Vue项目实战:新手入门指南
- 2024-11-16React Hooks之useEffect案例详解
- 2024-11-16useRef案例详解:React中的useRef使用教程
- 2024-11-16React Hooks之useState案例详解
- 2024-11-16Vue入门指南:从零开始搭建第一个Vue项目
- 2024-11-16Vue3学习:新手入门教程与实践指南
- 2024-11-16Vue3学习:从入门到初级实战教程