发现
因为之前一直使用第三方的社会化评论框来取代 WP 自身的评论,但是奈何多说废了
2014-11-27 多说无法打开,开启主题自带评论,之后只好再次换回了自带的评论框。 (好吧反正也没人会来评论。)
但是换回自带的评论框后发现了一个问题,那就是当开启了 Ajax 之后无论发布什么内容的评论,都会导致 {「error」:」get from image source failed: E405″}报错从而无法发布评论。
以前使用 xiu 主题 加 七牛加速 一直没出过错误 ,但是后来换了主题 却没法评论了。

原因
经百度后得到结论,七牛吧文件缓存走了。
原理就是 CDN 把你的 comments-ajax.js 文件给缓存走了,结果导致路径错误,这时候我们有两种选择来修复这个问题。
- 修改 js 文件让它能够支持你的 CDN 路径
- 将这个文件单独排除在 CDN 的镜像列表之外
1 、修改 comments-ajax.js 文件
这种方法的好处是你依旧可以体验完整的 CDN 镜像服务,你需要打开你主题目录下对应的文件然后修改它,找到如下的代码 (一般应该是在开头的)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++ ;
}
然后就在代码后边加入这样一句话js_url = js_url.replace('hsdate.qiniudn.com','ihuan.me');
其中 hsdate.qiniudn.com 网址换为你的七牛镜像地址 ihuan.me 换为你的站点地址即可
这样,修改完成后应该是下边的样子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++ ;
}
js_url = js_url.replace('hsdate.qiniudn.com','ihuan.me');
然后就保存上传就好了,当然,我希望你能搞定七牛的文件更新 XD 。
2 、添加 CDN 镜像例外
如果你和我一样是使用
wpjam-qiniutek
来开启 CDN 镜像的,那你也可以选择我这种修复办法——直接将这个 js 文件排除在镜像列表之外就好了,虽然加载的时候多了一个 js 文件,但省去了对付七牛那个缓慢的刷新过程,其实还是很不错的,立竿见影啊~
另外,我想其他的 CDN 插件应该也会有类似的排除功能,你可以领会精神然后自己去插件里找找——至于直接使用代码实现 CDN 的大神……请出门左转╮(╯▽╰)╭
好了,找到你 wpjam-qiniutek 的设置页面,然后在下边找到 「远程图片设置」这一项,将 comment-ajax 填写进去就好了。

记得多个语句之间用英文的逗号来分隔哦!
使用 WP Super Cache 插件实现 CDN 加速的一样 都填写 comment-ajax
但是可以使用了,可多说也复活了,so 继续多说,虽然多说评论框没自个带的好看。。。
声明一下啊,测试了下 wpjam-qiniutek 插件无法设置例外 wpjam-qiniutek 只能设置图片例外 使用 wpjam-qiniutek 的请使用 代码方法。
博主安装了个 WP Super Cache 来演示 WP Super Cache 的方法,测试了下 WP Super Cache 可以正常例外。
