wordpress静态文件加速,整合CDN

最近公司的一个网上商店的项目,用的底层是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 true
    if( defined( ‘SCRIPT_DEBUG‘ ) && SCRIPT_DEBUG ) {
        return;
    }

    // load class
    require_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库文件

<?php

namespace 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 empty
        if( ‘‘ === $this->cdn_url ) {
            return false;
        }

        // add rewrite filters for plugin & theme assets
        add_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 styles
        add_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;
    }
}

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

时间: 2024-10-03 13:54:13

wordpress静态文件加速,整合CDN的相关文章

自己搭建CDN服务器静态内容加速-LuManager CDN使用教程

为什么要自己来搭建一个CDN服务器实现网站访问加速?一是免费CDN服务稳定性和加速效果都不怎么行:二是用国内的付费CDN服务价格贵得要死,一般的草根站长无法承受:三是最现实的问题国内的CDN要求域名Be案. 有了Be案的域名自然是选择国内的主机,没有Be案的域名都是使用的美国主机,国内访问美国空间的速度有时会不理想,且始终比不上国内机房的访问速度,相对于美国空间,日本.香港等地的机房在国内访问速度非常快. 于是很多人都喜欢将自己的网站放在日本或者香港机房,就连CDN服务,我们都会希望找到有日本或

浅谈 举家搬迁静态文件到CDN

由于七牛CDN最近做活动,对于标准用户可以免费使用如下优惠 10 GB 存储空间 10 G/月 下载流量 10 万次/月 PUT/DELETE 请求 100 万次/月 GET 请求 以上这些指标直接就说明了,对于很多小型网站基本就够了.所以我就把我的网站的一些静态文件和图片都转移到CDN中去 前面我写过一篇文章 :[逗比作孽呀]网站缓存优化   就是为了加快图片的访问速度,这次把图片都放到CDN去,这样就会更快了 但是对于我来讲,我还要考虑一个问题,那就是如果七牛CDN出问题了,我如何快速的切换

【推荐】开放静态文件 CDN服务staticfile.org

虽然国内外有很多类似的服务器,比如最初的google ajax api,还有后来的sae,百度等都有提供,但是也都有不同的弊端,比如国内访问速度慢.提供的静态文件不全等...staticfile有望解决这个问题. 访问 http://staticfile.org/ 简单介绍: 此仓库由 Sofish.hfcorriez 和 ikbear 更新和维护,由七牛云存储提供存储和加速,国外源同步于 CDNJS. 特色:开放 该项目托管在github上,每个人都可以去提交补充需要的js或者css库文件.

静态文件cdn自解析生成相对路径

一.场景和目标:      用户上传一个包含 index.html 的静态资源压缩包,资源内所有文件都是相互依赖的,不需要用户对内部文件内容做任何特殊处理,仅通过服务端逻辑处理达到用户访问 http://xxx.xxx/guid/index.html 时就可以得到这个资源的所有数据并正常浏览. 二.技术:      nodejs.express      npm 包:decompress.request.crypto.pinyin 三.思路:      a.上传解析:      对每一个资源生成

2019年12月14日 Springboot项目搭建(2)-整合静态文件

1,引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> 2,添加静态文件 3,测试 原文地址:https://www.cnblogs.com/excellencesy/p/12069067.html

IDEA的maven项目整合SSM时css等静态文件加载无效问题

检查引入路径 我用的这种,其中css文件夹和jsp文件同目录 <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <link rel="stylesheet"

最佳 WordPress 静态缓存插件 WP Super Cache 安装和使用(转)

WP Super Cache 是 WordPress 官方开发人员 Donncha开发,是当前最高效也是最灵活的 WordPress 静态缓存插件.它把整个网页直接生成 HTML 文件,这样 Web 服务器就不用解析 PHP 脚本,通过使用这个插件,能使得你的 WordPress 博客将显著的提速. WP Super Cache 基本介绍 WP Super Cache 是基于 Ricardo Galli Granada 的 WP-Cache 2.WP-Cache 2 可以缓存你的 WordPre

DNS加速之“智能DNS”跟“双线加速”、“CDN加速”的区别

“智能DNS”跟“双线加速”.“CDN加速”的区别相信,很大部分IDC用户可能还没弄清楚状况,有人觉得智能DNS跟双线加速.CDN加速是类似的技术.其实不然,它们在工作方式上有着本质的区别,但它们又可以组合起来使用的.下面华数世纪为大家简单介绍一下: 智能DNS相当于一种在DNS解析服务器上进行的负载均衡,当用户访问一个站点时,他的IE浏览器向服务器提交了一个URL地址,域名解析服务器就开始分析用户的线路.如果用户属于电信线路,就把那个站点的电信IP解析给用户,把用户引到电信站:如果是网通也是同

NET Core静态文件的缓存方式

NET Core静态文件的缓存方式 阅读目录 一.前言 二.StaticFileMiddleware 三.ASP.NET Core与CDN? 四.写在最后 回到目录 一.前言 我们在优化Web服务的时候,对于静态的资源文件,通常都是通过客户端缓存.服务器缓存.CDN缓存,这三种方式来缓解客户端对于Web服务器的连接请求压力的. 本文指在这三个方面,在ASP.NET Core中静态文件的实现过程和使用方法进行阐述.当然也可以考虑使用反向代理的方式(例如IIS或Nginx),这些不是本文讨论的内容.