WordPress重写静态资源URL实现静态资源加速

发布于 2020-05-16  116 次阅读


前言

之前写了篇《jsDeliver+Github托管整站静态资源,实现免费CDN》,然后把博客的静态资源全部托管在了Github(wp-content、wp-includes),托管之后需要重写静态资源URL,因为不了解WordPress,所以最开始是利用水煮鱼的插件WPJAM-Basic的CDN功能,变相一键重写了静态资源URL,但通过这种方式重写之后,后端部分功能会出现问题,故不推荐。

解决

WP Super Cache

进入WP Super Cache后开启CDN功能,根据提示填写相关信息。

重要Off-site URL一栏填写https://cdn.jsdelivr.net(Github托管才填写该域名)

PS:该方法本博客测试无效,原因未知。

手动重写静态资源URL

将下面的代码加在主题的functions.php文件中。

function QiNiuCDN(){
    function Rewrite_URI($html){
        $pattern ='/https:\/\/(www\.|)234du\.com\/wp-([^"\']*?)\.(jpg|js|css|gif|png|jpeg|woff)/i';
        $replacement = 'https://static.234du.com/wp-$2.$3';
    $html = preg_replace($pattern, $replacement,$html);
    return $html;
    }
    if(!is_admin()){
        ob_start("Rewrite_URI");
    }
}
add_action('init', 'QiNiuCDN');

这样在网页中所有的静态资源(jpg,js,css,gif,png,jpeg,woff)都会自动地替换成为static开头的域名。

如果有需要还可以加入其它后缀的资源,比如ttf,mp4等文件。

以上代码来源于参考文章,目前已知问题,后台静态资源文件的URL不会被重写

参考

《WordPress开启CDN静态文件加速以及简单配置》

《WordPress使用二级域名动静分离》


这短短的一生,我们最终都会失去。