WordPress 博客如果将静态资源如 JS 文件等采用 CDN 加速的话,一般都会出现评论不成功的情况,这是因为评论时所获取的 commonts-ajax.js 路径不正确导致,所以解决的办法有两个:
方法一:在 CDN 中设置不缓存 commonts-ajax.js 文件即可;
方法二:修改 commonts-ajax.js 文件,打开当前主题所使用的 commonts-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++ ;
- }
在后面添加一句
- js_url = js_url.replace(‘res.yigujin.cn’,’www.yigujin.cn’);
变成
- 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(‘res.yigujin.cn’,’www.yigujin.cn’);
保存好文件并刷新该文件的缓存后即可解决评论失败的问题。如果 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++ ;
- var dm = js_url.match(/http:\/\/([^\/]+)\//i);
- js_url = js_url.replace(dm[1],’www.yigujin.cn’);
- }
其中 a.yigujin.cn 就是所谓的 CDN 地址,www.yigujin.cn 是站点地址,记得修改成自己的地址哦。