WordPress ·

七牛CDN导致AJAX评论错误解决方案

AJAX评论提交错误问题

网站备案后也去申请了七牛CDN的标准用户,并安装了水煮鱼的七牛CDN自动上传插件,一切看起来完美,静态文件全部通过CDN加速,减轻服务器负担,但是今天被人提醒才发现评论无法AJAX提交了,总是提示“{"error":"get from image source failed: E405"}”,网上搜索了一下,发现不少人也有此类问题,主要原因是CDN缓存了commonts-ajax.js文件,而ajax评论默认只加载主题根目录的那个js文件,路径错了,当然提交不了。

网上流传的解决方案

总结一下网上流传的解决方案的几个版本,发现并非所有人都适用,现在先说明一下。

第一种方法:修改commonts-ajax.js使之支持CDN路径,具体方案如下:

找到如下代码:

插入内容:

插入成功后应当是这样:

保存并上传该文件至CDN服务器。

问题,我发现我的comments-ajax.js文件是压缩过了,无法找到明显的此类标识符,修改太困难了,所以PASS。

第二种方法:使用WP-Super-Cache插件的CDN功能添加例外选项,这只对选择使用了该插件的用户有效;做法如下图:

cnd-exception 在“如果是之前有则排除”选项中添加comments-ajax记录以排除对该js的CDN加速。

事实上,我用的并非该插件,而且该插件不能自动同步文件至CDN服务器,不如我现在用的七牛CDN插件强大,所以接下来讲我的方法。

七牛CDN插件修改解决方案

我使用了wpjam-qiniu这个CDN同步插件,觉得非常不错,目前唯一的缺陷就是ajax评论错误,现在好了,你只需要稍微修改插件代码即可。

打开插件目录,找到wpjam-qiniutek.php文件打开,定位至100行return $html前,插入以下代码:

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

参与评论

  • 1212

    加入了代码,也修改了路劲,为什么还不管用

    3年前 (2016-01-30)
    回复
    回复1212
  • z_devil

    学习了。

    3年前 (2015-10-15)
    回复
    回复z_devil
  • zhangnew

    排除了function.js 解决了,但是提交评论前后台都不显示。。。。。。。。。。。。。。。。。

    3年前 (2015-10-09)
    回复
    回复zhangnew
  • zhangnew

    我用的是您的 Tinection 主题,没有 /wp-content/themes/tinection/comments-ajax.js 这个文件,只有 /wp-content/themes/tinection/functions/comments-ajax.php 这个php文件,用下面这个替换不管用,

    $html = str_replace('http://cdn.zhangnew.com/wp-content/themes/tinection/functions/comments-ajax.php', 'http://zhangnew.com/wp-content/themes/tinection/functions/comments-ajax.php', $html);

    3年前 (2015-10-09)
    回复
    回复zhangnew
  • 23

    00测试

    3年前 (2015-10-06)
    回复
    回复23
  • Henry

    学习了。。

    3年前 (2015-08-20)
    回复
    回复Henry
  • zph224

    学习了。。。

    3年前 (2015-06-26)
    回复
    回复zph224
  • e网络

    为毛不行

    3年前 (2015-03-29)
    回复
    回复e网络
  • 知言

    看清楚了,现在js文件名字改成function.js 而且位置也变了,你的url当然也要改,脑子要变通,不能还拿我示例的url代码贴上去

    3年前 (2015-03-30)
    回复
    回复知言
  • www_xie

    我知道 路径我已经改了 还是不行 求助啊

    3年前 (2015-03-30)
    回复
    回复www_xie
  • 知言

    最简单的方法,两个路径url判断对不对,请直接粘贴到浏览器访问就知道了,另外顺序也不能反了

    3年前 (2015-03-30)
    回复
    回复知言
  • tony

    七牛和阿里,不知道选哪个做wordpress好啊

    4年前 (2015-02-09)
    回复
    回复tony
  • 内涵打工仔

    学习了

    4年前 (2015-01-09)
    回复
  • 淡然随心

    学习!!!!!

    4年前 (2014-12-30)
    回复
    回复淡然随心
  • 淡然随心

    学习了!!!

    4年前 (2014-12-28)
    回复
    回复淡然随心
  • lin

    来看看!。。。。

    4年前 (2014-12-18)
    回复
    回复lin
  • zhihuanwang

    路径有问题

    4年前 (2014-12-16)
    回复
    回复zhihuanwang
  • myideal

    不错,很实用。

    4年前 (2014-12-15)
    回复
    回复myideal
  • 知言

    它那个ajax php文件默认找物理路径的js文件,对url的js支持不好

    4年前 (2014-12-09)
    回复
    回复知言
  • 云搜部落

    路径错了吧

    4年前 (2014-12-09)
    回复
    回复云搜部落