上次不是说到多说要关闭服务了,所以就将换回了自带的评论,之后也就没怎么去管。后来收到 李翔宇 童鞋给我发来的邮件,告诉我说评论出现了评论报错:
{"error":"get from image source failed: E405"}
网上一查,原来是七牛 CDN 导致的问题,由于主题采用了 ajax 评论脚本 comments-ajax.js
,缓存到七牛时替换成了镜像地址,导致 comments-ajax.js
这个评论文件失效。
解决方法如下:
首先在主题文件夹下找到 comments-ajax.js
打开,并且找到如下代码:
var i = 0, got = -1, len = document.getElementsByTagName('script').length;
while ( i <= len && got == -1){
var js_url = document.getElementsByTagName('script')[i].src,
got = js_url.indexOf('comments-ajax.js'); i++ ;
}
它一般在最开头的位置,然后在这段代码之后再添加一句代码(别忘了修改代码内的域名),如下:
// 修复七牛 cdn 评论失效
js_url = js_url.replace(' 你的七牛镜像域名',' 你自己的域名');
修改好之后,保存上传即可。如果你有缓存 JS 文件到七牛的话,记得到七牛里面将原来缓存的 comments-ajax.js
文件删除,若 wordpress 有缓存插件的也要删除一遍缓存。
刷新文章页面,让七牛更新缓存文件。 更新完毕之后,即可恢复评论功能。
由于 mufeng 的 lovephoto 主题结构特殊,所以在这里我也将这个 lovephoto 主题的解决方法也一并记录一下。
首先在主题文件夹内 themes/Lovephoto/assets/scripts
找到 comments-ajax.js
并打开这个 JS 文件,找到
comm_array.push("");
然后替换成下面的内容(别忘了修改代码内的域名)
// 修复七牛 cdn 评论失效
js_url = js_url.replace(' 你的七牛镜像域名',' 你自己的域名');
comm_array.push("");
修改好之后,保存上传即可。如果你有缓存 JS 文件到七牛的话,记得到七牛里面将原来缓存的 comments-ajax.js
文件删除,若 wordpress 有缓存插件的也要删除一遍缓存。
刷新文章页面,让七牛更新缓存文件。 更新完毕之后,即可恢复评论功能。