博客建设 ·

修复七牛CDN导致AJAX评论错误问题

AJAX评论提交错误问题

在安装了水煮鱼(鱼叔)的七牛CDN插件后,一切看起来很完美,静态文件全部通过CDN加速,减轻服务器负担,偶然发现评论无法AJAX提交了,总是提示“{"error":"get from image source failed: E405"}”,网上搜索了一下,发现不少人也有此类问题,主要原因是CDN缓存了commonts-ajax.js文件,而ajax评论默认只加载主题根目录的那个js文件,路径错了,当然提交不了。

网上流传的解决方案

总结一下网上流传的解决方案的几个版本,发现并非所有人都适用,现在先说明一下。第一种方法:修改commonts-ajax.js使之支持CDN路径,具体方案如下:找到如下代码:

添加以下代码:

或着添加:

最后别忘记刷新缓存,更新下cdn的comments-ajax.js文件。问题又来了,因为小编用的是知言的Tinection主题,comments-ajax.js文件是压缩过了,也无法找到明显的此类标识符,而且新版本的comments-ajax.js也集成在function.js文件里了,修改太困难了,所以PASS。第二种方法:使用WP-Super-Cache插件的CDN功能添加例外选项,这只对选择使用了该插件的用户有效;做法如下图:

在“如果是之前有则排除”选项中添加comments-ajax记录以排除对该js的CDN加速。第三种方法:七牛CDN插件修改解决方案wpjam-qiniu这个CDN同步插件,非常不错,目前发现的缺陷就是ajax评论错误和图片暗箱失效,现在好了,你只需要稍微修改插件代码即可解决ajax评论错误。打开插件目录,找到wpjam-qiniutek.php文件打开,定位至100行

前,插入以下代码:

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

参与评论