学习永不停止
我们一起努力吧!

wordpress大前端dux1.4七牛云存储CDN加速评论失效的处理方法

阳江鼎阳抄数设计交流群

解决大前端评论{“error”:”get from image source failed: E405″}错误的方法

这几天一直用七牛云存储cdn加速wordpress大前端DUX1.4主题的博客网站,感觉明显快了很多。但是突然有网友小窗Q我,说评论时出现了{“error”:”get from image source failed: E405″}错误提示。之前评论不是一直用得好好的吗?吃惊之下,马上进行了测试,果然出现了网友所说的问题。于是在百度上搜索处理方法,直接输入“{“error”:”get from image source failed: E405″}”作为关键字,竟然搜索出来一大堆文章,看来遇到这种问题的人还真不少。不过,细心一看,这一大堆文章其实都是相互抄袭,千篇一律完全没有新意,无非就是找到“comments-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(‘七牛加速地址或二级域名’,’网站地址’);

当然,笔者并不是说这种方法不对,反而非常认同对于常规的wordpress主题其实是非常适合,甚至那些安装了WP Super Cache七牛加速插件的朋友都得在”CDN”下“如果是之前有则排除”选择框中输入“comments-ajax.js”进行排除才能正常评论。原理其实都是一样,就是七牛CDN加速后使ajax评论链接发生改变造成的影响。本人使用的是大前端DUX1.4主题,跟传统的主题相比,其在文件位置、内容上都有很大的差别,所谓的comments-ajax.js文件根本不存在,所以必须要找到控制“评论”的文件修改才能解决问题。

前面也说了,网上都是统一性用“comments-ajax.js”解决{“error”:”get from image source failed: E405″}错误的文章,对于各种特殊主题的,比如DUX相应问题的解决文章基本上没有。由于小弟是初次接触DUX主题,只能痛苦地慢慢查找,在经过一上午的努力后,终于找到了这段放在“footer.php”内的代码:

<script>
window.jsui={
    www: '<?php echo home_url() ?>',
    uri: '<?php echo get_stylesheet_directory_uri() ?>',
    ver: '<?php echo THEME_VERSION ?>',
roll: <?php echo $roll ?>,
    ajaxpager: '<?php echo _hui("ajaxpager") ?>',
    url_rp: '<?php echo mo_get_user_rp() ?>'
};
</script

测试中发现,只要删除当中的这个代码:

uri: '<?php echo get_stylesheet_directory_uri() ?>',

评论就会正常。但觉得删除这段代码会影响后面的其他功能,于是还原回去。继续找寻其他的解决方法。

顺着这个线索,用Dreamweaver搜索全部包含“get_stylesheet_directory_uri”的文件,经过排查,确定代码的控制源在inc/pn.php里面:

function _jsloader($arr) {
	foreach ($arr as $item) {
		wp_enqueue_script('_' . $item, get_stylesheet_directory_uri() . '/js/' . $item . '.js', array(), THEME_VERSION, true);
	}
}

于是将其中的js路径改为绝对网站路径:

function _jsloader($arr) {
	foreach ($arr as $item) {
		wp_enqueue_script('_' . $item, get_stylesheet_directory_uri() . 'http://Jdks100.com/wp-content/themes/dux/js/' . $item . '.js', array(), THEME_VERSION, true);
	}
}

刷新缓存后,评论不了。其实自己心里清楚问题基本上出在dux/js下面的.js文件中,再次一一排查后,终于找到了让评论生效的方法,那就是必须配合上述代码的同时,再将dux/js/libs下面的bootstrap.min.js、jquery.min.js删除或禁用。评论确实是解决了,但仍然存在“搜索框”点击不了的问题。

评论正常,搜索框不正常,这就意味着失败。总结一下前面处理的过程,发现一直纠结在找哪个文件有问题而忽略了某一个文件里面的代码链接才是直接影响到评论失效的最终“元凶”。重新确定了一套方案,认为有必要以”var = var.raplace(‘要替换的链接’,’替换上的链接’);”这种链接放入已经确认影响评论的”footer.php“文件中进行处理。所以,现在唯一的问题就是找到“var”到底是什么?

思维再一次得到明确,接下来,笔者利用Dreamweaver的整站搜索功能,输入关键字“ajax”,在搜索出来的二三十个结果中,找出一个最有可能的“user.js”文件,因为其里面有这样一组代码:

提示: 此处内容需要评论本文后才能查看.

 

最终成功地解决“评论失效”问题,又让搜索框显示出来。

就此结束本文吧。有疑问欢迎留言交流!

未经允许不得转载:http://jdks100.com/风语守望_博客 » wordpress大前端dux1.4七牛云存储CDN加速评论失效的处理方法


分享到:更多 ()
关注“公众平台”:     学习交流QQ群(185619299):

评论 7

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  • 2 + 7 = ?
  1. #7

    看看

    1234562年前 (2017-05-22)回复
  2. #6

    看看效果如何

    缙哥哥2年前 (2017-07-27)回复
  3. #5

    卡看

    kaho1002年前 (2018-01-26)回复
  4. #4

    哈哈,正好需要

    皓月1年前 (2018-06-07)回复
  5. #3

    测试

    孤魂野鬼1年前 (2018-06-08)回复
  6. #2

    厉害

    ji5个月前 (04-02)回复
  7. #1

    我的5.3的啊 我试试看能不能行

    flyff5个月前 (04-04)回复

风语守望_博客,共同学习,一起成长!

网站首页联系我们
防复制