前言
之前写了篇《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不会被重写。