最近公司的一个网上商店的项目,用的底层是wordpress+woocommerce,里面很多自定义的额外功能是由我开发的,最后部署的时候计划整合CDN,把静态内容都分流给边缘服务器,wordpress只处理数据逻辑,也就是只运行php程序。

这涉及到如何把默认的静态资源url替换成CDN的url,在网上翻了一遍,原来已经有大牛写出了靠谱的插件了,这个大牛的博客地址

https://dannyvankooten.com/using-a-cdn-with-wordpress/

人家在github上已经开源了自己的项目

https://github.com/dannyvankooten/wp-cdn-loader

直接下载插件到wp-content/plugins,解压,在管理页面激活就能使用

https://github.com/dannyvankooten/wp-cdn-loader/archive/master.zip

首先要在wp-config.php里面添加这么一行,可以作为是否开启CDN的开关之一,另外一个开关就是在后台

关闭这个插件的功能咯~

define( 'DVK_CDN_URL', 'http://xxxxxx.cloudfront.net' );
//The plugin won't replace assets when SCRIPT_DEBUG is enabled.

配置好之后,刷新页面,就能看到所有css,js,jpg,png的url的前面都被替换成了设置的值(

http://xxxxxx.cloudfront.net

)了,说明配置成功!

好奇心所向,研究了人家写的代码,一共2个文件,主文件

<?php
/*
Plugin Name: CDN Loader
Description: This plugin will load your assets from a given CDN instead of the local server.
Author: Danny van Kooten
Version: 1.0
Author URI: https://dannyvankooten.com/
*/namespace CDN_Loader;if( ! defined( 'ABSPATH' ) ) {exit;
}add_action( 'template_redirect', function() {// Don't run if SCRIPT_DEBUG is set to trueif( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) {return;}// load classrequire_once __DIR__ . '/src/UrlRewriter.php';// get url of cdn & site$cdn_url = ( defined( 'DVK_CDN_URL' ) ? DVK_CDN_URL : '' );$site_url = get_site_url();// instantiate class$url_rewriter = new UrlRewriter( $cdn_url, $site_url );$url_rewriter->add_hooks();
});

class库文件

<?phpnamespace CDN_Loader;class UrlRewriter {/*** @var string*/private $cdn_url = '';/*** @var string*/private $site_url = '';/*** Constructor** @param string $cdn_url* @param string $site_url*/public function __construct( $cdn_url, $site_url ) {// Store cdn url & site url in property$this->site_url = $site_url;$this->cdn_url = $cdn_url;}public function add_hooks() {// add nothing if cdn url is emptyif( '' === $this->cdn_url ) {return false;}// add rewrite filters for plugin & theme assetsadd_filter( 'theme_root_uri', array( $this, 'rewrite' ), 99, 1 );add_filter( 'plugins_url', array( $this, 'rewrite' ), 99, 1 );// add rewrite filters for misc scripts and stylesadd_filter( 'script_loader_src', array( $this, 'rewrite' ), 99, 1 );add_filter( 'style_loader_src', array( $this, 'rewrite' ), 99, 1 );return true;}/*** @param $url** @return mixed*/public function rewrite( $url ) {$url = str_replace( $this->site_url, $this->cdn_url, $url );return $url;}
}

今天先写到这里,公司要上班了, 有空再补充说明。

转载于:https://blog.51cto.com/brucetam/1725648

wordpress静态文件加速,整合CDN相关推荐

  1. Github+jsDelivr为脚本/图片等静态文件加速的全球CDN

    Github是目前最大的项目的托管平台!19年年初的时候被微软收购了.免费套餐还支持私有仓库了!还真不错哇!可惜国内访问比较慢!! jsDelivr提供npm,GitHub,WordPress等项目的 ...

  2. 阿里云对象存储OSS用作网站静态文件加速的优势

    什么是对象存储OSS 阿里云对象存储OSS(Object Storage Service)是一款海量.安全.低成本.高可靠的云存储服务,可提供99.9999999999%(12个9)的数据持久性,99 ...

  3. 百度智能云实战——静态文件CDN加速

    前言 互联网进入移动互联网时代后,产品形态有几次大的演进.最初,H5站点如雨后春笋般的出现,大量H5站点迅速占领PC市场,中期,为了追求极致用户体验,大量原生Android.IOS应用出现,为用户提供 ...

  4. php 静态 动态 cdn 加速,一次鸡肋(能用CDN代替)的DUX主题静态文件优化加速的日志...

    为了让博客能更快的访问,体验度更好,缙哥哥绞尽脑汁(大).想方设法(穷).竭尽全力(逼)去优化加速.由于缙哥哥想把服务器性能尽可能的使用出来(太抠不愿意花钱升级服务器),又不想花钱买CDN服务,所以就 ...

  5. php可以用百度云加速吗,百度云加速免费版CDN使用方法(图文)

    百度云加速说明 百度云加速是一款百度旗下的CDN服务工具,支持免费CDN.网站攻击防护.SEO优化功能,是国内免费CDN服务使用率最多的CDN服务工具了. 百度云加速免费版说明 像我们这种草根站长是用 ...

  6. 静态资源加速,jsdelivr的替代品整理

    jsdelivr是一个大名鼎鼎的静态资源cdn加速平台,以他免费.高速.支持github文件的特点而备受欢迎.本站也引用了大量的jsDelivr的资源,而从去年年底开始,我就发现本站访问速度异常缓慢, ...

  7. 七牛镜像存储 WordPress 插件:一键实现 WordPress 博客静态文件 CDN 加速

    七牛云存储是由七牛提供的在线存储服务,通过云端接口向企业客户提供网上无限存储空间,和传统的云存储服务(如 Amazon S3)不同,七牛云存储还增加了上传下载传输加速以及富媒体云端处理特性. 七牛云存 ...

  8. nano云存储 java,Nano云存储静态文件存储CDN和WDCDN免费CDN加速

    前一篇的七牛云存储国内免费CDN加速的文章,有朋友留言说又出现一个新的文件云存储服务:nano云存储,我一搜索还真是"新"出来的,谷歌官网都没有收录,反而异常的是百度收录了首页,再 ...

  9. 将 laravel 项目内静态文件,css、js、images 部署到七牛云 CDN

    项目升级,打算把 public 目录下的 css.js.image等文件,上传到七牛云,一直想搞来着,今天又想起来,正好 laravel 也从 5.2 升级到了 5.7,接下来把这边一搞,项目就更加优 ...

最新文章

  1. 万字干货 | Python后台开发的高并发场景优化解决方案
  2. ABAP將數字輸出前面補0
  3. java 二维高斯_Java Random nextGaussian()用法及代码示例
  4. js遍历Object所有属性
  5. Java中堆内存和栈内存详解(转)
  6. Android学习总结(1)——好的 Android 开发习惯
  7. python中国官网-Python教程
  8. (二)设置hexo支持mermaid
  9. 机器学习基础算法18- 鸢尾花数据集分类-随机森林
  10. TED如何和压力做朋友(第三天)
  11. Financial Management
  12. rapidxml库生成xml小例子及需注意的问题
  13. 基于马尔萨斯的人口模型的一个Logistic模型(MATLAB)
  14. todos app简单编写(web)
  15. 董明珠接连直播背后:格力的线上焦虑
  16. 揭秘沃尔玛、腾讯、京东、浙商银行的供应链管理方案
  17. css让四个div并排显示,css如何让两个div并排显示?
  18. 社保入税+国家支持,企业一大法宝:灵活用工
  19. md5等hash算法加密解密问题
  20. 递归算法实例应用(五)

热门文章

  1. [原]无法删除openstack nova的image instance
  2. Symfony2Book04:Doctrine01-介绍模型(Model)
  3. 专访McAfee“M双侠” 感受McAfee云安全自信
  4. StarCraft的工程师谈美国的游戏开发过程
  5. Adobe 修复Commerce 和 Magento 平台中的又一个严重RCE
  6. VMware ESXi 高危漏洞的补丁被指不完整
  7. 如何查看Windows 10系统版本号?
  8. python学习之dict的items(),values(),keys()
  9. ppt转pdf软件免费版
  10. 笑谈“委托”与“事件”