文章评分 次,平均分 :
导语: 申请了七牛CDN 的标准用户,并安装了水煮鱼的七牛CDN自动上传插件,一切看起来完美,静态文件全部通过CDN加速,减轻服务器负担,但是今天才发现评论无法AJAX提交了,总是提示“{"error":"get from image source failed: E405"}”,网上搜索了一下,发现不少人也有此类问题,主要原因是CDN缓存了commonts-ajax.js文件,而ajax评论默认只加载主题根目录的那个js文件,路径错了,当然提交不了。
申请了七牛CDN 的标准用户,并安装了水煮鱼的七牛CDN自动上传插件,一切看起来完美,静态文件全部通过CDN加速,减轻服务器负担,但是今天才发现评论无法AJAX提交了,总是提示“{"error":"get from image source failed: E405"}”,网上搜索了一下,发现不少人也有此类问题,主要原因是CDN缓存了commonts-ajax.js文件,而ajax评论默认只加载主题根目录的那个js文件,路径错了,当然提交不了。
网上的解决方案:
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('七牛CDN地址.qiniudn.com','www.你的域名.com');
这样,修改完成后应该是下边的样子
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('七牛CDN地址.qiniudn.com','www.你的域名.com');
保存并上传该文件至CDN服务器。
2.使用WP-Super-Cache插件的CDN功能添加例外选项,这只对选择使用了该插件的用户有效

在“如果是之前有则排除”选项中添加comments-ajax记录以排除对该js的CDN加速。
如果用的不是该插件,这种 方法就不行了,而且该插件不能自动同步文件至CDN服务器 。
3.七牛CDN插件修改解决方案
目前使用了wpjam-basic这个CDN同步插件,觉得非常不错。
编辑如下文件:

找到如下方法,在 return $html前加入一段代码。

$html = str_replace('http://七牛CDN地址
/wp-content/themes/tinection/includes/js/comments-ajax.js','http://你的域名/wp-content/themes/tinection/includes/js/comments-ajax.js',$html);
其原理是插件已经修改静态文件原目录至CDN目录,我只需要再把comments-ajax.js这一个文件的目录改回来即可,其中第一个路径是CDN服务器上comment-ajax.js的路径,需要把它替换为第二个路径,即网站原文件路径,具体路径请根据你自己的网站作修改。
如果使用的是Tinection主题,comments-ajax.js是不存在的,主题的作者将它集成到了function.js中,只需要把comments-ajax.js替换成function.js即可。

除特别注明外,本站所有文章均为DreamChan原创,转载请注明出处来自http://www.dreamchan.cc/88.html

暂无评论