之前在使用七牛云存储的时候就出现过这个问题了,因为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 文件中下面这段程序的后面:
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('cdn.devework.com','devework.com'); |
其中,
cdn.devework.com
改为你的七牛提供的二级域名(如果源域名有备案可以使用自己的),devework.com
就改成你的域名。这样就可以解决这个问题了。
再次感谢原作者,代码来源:http://www.tennfy.com/503.html
七牛云存储相关文章:
学习了。谢谢。