添加一个七牛图片CDN需要插件么?

  实际上对于我们这些博客访问量小的人是没有啥必要的,但是因为速度实在太慢,慢慢也就有必要起来了,好歹也能加快部分速度,使用的方法相对简单,一个插件即可轻松搞定,前提是需要做个CDN镜像,实际上我们大多数时候只是操作一下缓存图片而已,为此折腾个插件必要性就不大了。
  分析分析目前图片地址,就我的来说,如https://rs-01.loveyu.org/blog-resource/uploads/2014/0….,这样一长串,替换掉前面一截就可以了,我这里替换为http://loveyu.u.qiniudn.com/blog/uploads/2014/0….,之所以这样在于我做了一定的修改,不用插件的解决办法就是直接用JS替换,原始代码什么操作都不用做,包括上传等处理,插件的一个好处是可以让服务器不保留任何图片,全部存储在CDN上,不知道这样各位放心不放心。

//图片cdn
jQuery("img").each(function (id, elem) {
    var i = elem.src.indexOf("https://rs-01.loveyu.org/blog-resource/uploads/");
    if (i == 0) {
        jQuery(elem).attr("src", "http://loveyu.u.qiniudn.com/blog/uploads/" + elem.src.substr(41));
    }
});
//链接CDN
jQuery("a").each(function (id, elem) {
    var i = elem.href.indexOf("https://rs-01.loveyu.org/blog-resource/uploads/");
    if (i == 0) {
        jQuery(elem).attr("href", "http://loveyu.u.qiniudn.com/blog/uploads/" + elem.href.substr(41));
    }
});

  上面的代码就是我所做的操作,将图片匹配的地址与链接匹配的地址替换为CDN的链接,这样在浏览器加载文档之后,还未加载图片之前链接就会被替换,实际的效果和插件实现是一致的,如果可以的话可以添加一个加载错误的操作来还原原地址,相当于是做了一个保险。
  这就算是一种简单的实现,同时使用全站缓存感觉有点不合适,毕竟你不会想让你的网页也出现在CDN之上,那应该是非常没有必要的,还是和我一样只对资源文件夹缓存较好。

5条评论在“添加一个七牛图片CDN需要插件么?”

  1. 我想這跟網站的目標讀者有關係吧…
    如果主要是中國網友, 開啟也不錯,
    但是外國的網友為主, 就用其他公司的CDN比較好

    1. 是的啊,如果不覺得麻煩,依據來路IP來判斷也不錯,可以使用多個CDN,技術實現起來很簡單的。

回复 HKSG   取消