之前本站使用的是多说的评论插件 (虽然也没什么人评论-.-) 。今天在改回主题自带评论样式后,测试了下评论提交,发现提交不了了。提示:{"error":"get from image source failed: E405"} 。在求教度娘后找到了问题所在。

网上提供的方法:在自己的主题下 js 文件找到 comments-ajax.js 这个文件,找到如下代码:

vari=0,got=-1,len=document.getElementsByTagName(script).length;

while(i<=len&&got==-1){

    varjs_url=document.getElementsByTagName(script)[i].src,

            got=js_url.indexOf(comments-ajax.js);i++;

}

添加一段代码:

1

js_url=js_url.replace(『七牛的域名』,』 你的域名』);

添加后的完整代码为:

vari=0,got=-1,len=document.getElementsByTagName(script).length;

while(i<=len&&got==-1){

    varjs_url=document.getElementsByTagName(script)[i].src,

            got=js_url.indexOf(comments-ajax.js);i++;

js_url=js_url.replace(cdn.xhsay.com,www.xhsay.com);

}

其中 cdn.xhsay.com,和 www.xhsay.com 分别改为你的七牛和网站地址,改完后上传即可。其次需搞定七牛的镜像缓存。

但是由于我使用的是知言博主的 Tinection 主题,作者在制作时压缩了 comments-ajax.js 文件,并且改了文件名和路径:themes/tinection/includes/js/function.js,无法找到明显的此类标识符,修改太困难了。故以上方法不适用。

经过半个小时的上网找资料研究,最后终于找到了其它方法。打开七牛插件目录 wp-content/plugins/wpjam-qiniu/,找到 wpjam-qiniutek.php 文件打开,定位至 100 行 return $html 前,插入以下代码:

1

$html=str_replace('http://www.xhsay.com/wp-content/themes/tinection/includes/js/function.js','http://cdn.xhsay.com/wp-content/themes/themes/tinection/includes/js/function.js',$html);

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