以我现在使用的主题(D8)为例吧,D8使用了ajax评论的方法,在使用Wp Super Cache中的CDN功能替换静态资源链接后,评论就会出现标题中的{“error”:”get from source failed: E405″}
在检查过主题和打开的页面后发现了问题所在
D8是将前端的配置直接放在footer.php中混合html输出的,这就导致了wp super cache替换链接时,按照规则将url中的域名替换为了cdn资源的域名,提交评论时就提交到了七牛那儿。。。于是就出错误了。。。
既然替换了原始链接,那我们换回来就OK了!
在footer.php中找到图中的代码段
在下面添加
_deel.url = _deel.url.replace('你的CDN静态资源域名','你的原始域名');
例如:
window._deel = { name: '<?php bloginfo('name') ?>', url: '<?php echo get_bloginfo("template_url") ?>', rss: '<?php echo dopt('d_rss') ?>', maillist: '<?php echo dopt('d_maillist_b') ?>', maillistCode: '<?php echo dopt('d_maillist') ?>', commenton: <?php echo $commenton ?>, roll: [<?php echo $sr_1 ?>,<?php echo $sr_2 ?>] } _deel.url = _deel.url.replace('qncdn.qiniudn.com','www.shenqhy.com');然后保存文件就OK了,如果不放心可以去测试一下~~~!
在其它主题里找不到怎么办?
在评论相关的js文件里找特征,然后自己组合语句
例如:
在主题js目录下的jquery.js中找到这样一段:
里面包含了ajax、comment、url、comment.php等字样,这就是提交评论的地方
其中的_deel.url就是主题目录的链接地址了,这时我们可以在其上面加入
_deel.url = _deel.url.replace('你的CDN静态资源域名','你的原始域名');
但由于javascript是由上到下执行的,为了防止其余的地方用到时出错,可以使用搜索找到最靠前的那个链接变量(这里是_deel.url),在它的上面加入
_deel.url = _deel.url.replace('你的CDN静态资源域名','你的原始域名');
再保存就可以关于语句组合的方法就是:
var = var.raplace('要替换的链接','替换上的链接');
其中var代表变量,需要自己根据情况修改
转载请注明:神奇海域 » 修复使用七牛CDN后,评论时出现{"error":"get from source failed: E405"}