解决WordPress 使用七牛云存储导致 Ajax 评论失效的问题

5,383
解决WordPress 使用七牛云存储导致 Ajax 评论失效的问题
  • 4.43 / 5 5
4.43分(7票)
解决WordPress 使用七牛云存储导致 Ajax 评论失效的问题

之前在使用七牛云存储的时候就出现过这个问题了,因为Jeff 的主题是使用了willian kan大师的 Ajax 评论提交技术,涉及到的那个comments-ajax.js ——该文件有一个相对路径指向同目录下的comments.php 。因此当comments-ajax.js 存储到七牛那里后并在主题中调用七牛服务器的comments -ajax.js 就会导致同时引用的comments.php 是在七牛的。

这一点如果你的主题是 Ajax 评论的,又使用七牛云存储的话,通过开发者工具可以明显看到。七牛在存储comments-ajax.js 的同时已经将comments.php 连着存储过去了。comments.php 这个php 文件只能在php 环境下运行,但明显在七牛服务器里的comments.php 并不是处于php 环境,因此WordPress的 Ajax 评论失效是当然的。

遗憾的是,Jeff 虽然知道原因,却不知道如何解决。 谁叫人家还没深入学习javascript (Jquery)啊!当时我的解决方法是comments-ajax.js 不使用七牛的(即不加速),其他文件没问题的就使用七牛云存储的。

不过,今天这个问题终于解决了。不过,当然不是Jeff 解决的。

来自TENNFY WU 的tennfy 给我们提供了一个较完美的解决方法,再此感谢这位哥们

在comments-ajax.js 文件中下面这段程序的后面:

1
2
3
4
5
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++ ;
}

添加一句话:

1
js_url = js_url.replace('cdn.devework.com','devework.com');

其中,

cdn.devework.com改为你的七牛提供的二级域名(如果源域名有备案可以使用自己的),devework.com就改成你的域名。这样就可以解决这个问题了。

再次感谢原作者,代码来源:http://www.tennfy.com/503.html

七牛云存储相关文章:

WordPress 中使用 七牛云存储 加速图片等静态文件访问速度

使用 七牛云存储 给力CDN加速图片等静态文件(附相关教程)

喵~本文目前有1条留言,欢迎发表评论!

  1. 传说中的沙发
    :

    学习了。谢谢。

    [回复]

打破沉默,我来发表评论鸟~