关于使用七牛云存储插件导致AJAX评论错误

  • 关于使用七牛云存储插件导致AJAX评论错误已关闭评论
  • 196 views
  • A+
所属分类:SEO优化 WordPress

之前用emlog的时候,我也有用过七牛云作为加速,搬来WordPress后,也和大部分人一样用起我爱水煮鱼的七牛云存储插件。

刚开始用的时候,我没有把JS文件设置成要缓存的文件,因为我刚开始用的时候发现设置后评论报错{“ERROR”:”GET FROM IMAGE SOURCE FAILED: E405″},然后也就没去管他,反正能用就行了。。。

这几天想找找能不能找到解决方法。

关于使用七牛云存储插件导致AJAX评论错误

百度了下,问题为使用七牛CDN导致AJAX评论错误。

解决方法呢,普遍是下面2种:

 

第一种:

修改commonts-ajax.js使之支持CDN路径,具体方案如下:

找到如下代码:

  1. var i = 0, got = -1, len = document.getElementsByTagName('script').length;
  2. while ( i <= len && got == -1){
  3. var js_url = document.getElementsByTagName('script')[i].src,
  4. got = js_url.indexOf('comments-ajax.js'); i++ ;
  5. }

在后面加入代码:

  1. js_url = js_url.replace('ex.bkt.clouddn.com','www.wxlog.cn');

ex.bkt.clouddn.com改为你的七牛提供的二级域名或者你的七牛云绑定域名,www.wxlog.cn修改为你的域名。

然后更新commonts-ajax.js文件。

这样就可以解决这个问题了。(但是我更新了好像没什么反应,不知道是不是我那里出了问题,直接跳过。。。)

 

第二种:

直接排除缓存这个文件

使用WP-Super-Cache插件的CDN功能添加例外选项,如下图:

关于使用七牛云存储插件导致AJAX评论错误

但是我之前用过这个插件,总是缓存不成功,最终还是放弃这个插件,没有再使用,所以这方法对我也没用。。。

 

最后总算找到一个修改七牛CDN插件的方法:

打开插件目录,找到wpjam-qiniutek.php文件打开,定位至100行return $html前,插入以下代码:

  1. $html str_replace('http://加速域名/wp-content/themes/主题/js/comments-ajax.js', 'http://原网站域名/wp-content/themes/主题/js/comments-ajax.js', $html);

原理:

插件已经修改静态文件原目录至CDN目录,只需要再把comments-ajax.js这一个文件的目录改回来即可,其中第一个路径是CDN服务器上comment-ajax.js的路径,需要把它替换为第二个路径,即网站原文件路径,具体根据你的网站自己稍作修改即可,这样既体验了七牛CDN,又解决了AJAX评论错误的问题。

 

唯心寒辞