七牛等CDN缓存js后导致ajax评论失败的解决办法

  • A+
所属分类:网站建设

为了加快网站访问速度,本站所有的图片文件已托管到了七牛云存储。近日也想尝试将js文件托管到七牛云存储,但是将js文件托管到七牛后发现评论时七牛返回: {"error":"get from source failed: E405"} 错误。

本站使用的是知更鸟begin主题自带的ajax评论,js文件静态分离托管到七牛或者其他CDN后,ajax评论的核心文件comments-ajax.js(新版本begin主题请修改comments-ajax-qt.js)也被缓存到了七牛或者其他CDN上,由于地址的改变,所以造成ajax评论失败,说下解决办法吧:

打开主题目录下的comments-ajax.js(新版本begin主题请修改comments-ajax-qt.js)文件,在comments-ajax.js(新版本begin主题请修改comments-ajax-qt.js)文件最上方找到:

  1. var i = 0, got = -1, len = document.getElementsByTagName('script').length;
  2. while ( i <= len && got == -1){
  3.     var js_url = document.getElementsByTagName('script')[i].src,
  4.             got = js_url.indexOf('comments-ajax.js'); i++ ;
  5. }

在其下方添加:

  1. js_url = js_url.replace('res.duoluodeyu.com','www.duoluodeyu.com');

其中'res.duoluodeyu.com'是你在七牛或其他CDN绑定的静态资源域名,'www.duoluodeyu.com'是你网站的网址。

2017年10月13日更新:

由于新版本的begin主题ajax评论使用的是comments-ajax-qt.js,如你是近期获得的begin主题,请对应修改comments-ajax-qt.js文件。

avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:4   其中:访客  2   博主  2

    • avatar 1213 0

      试了一下,依然报错{“error”:”get from source failed: E405″}

        • avatar 堕落的鱼 Admin

          @1213 新版本的begin主题使用的是comments-ajax-qt.js文件,请参照修改comments-ajax-qt.js文件

        • avatar 黑苹果社区 0

          你好,我使用的begin主题5.2按照你的方法进行了修改,但是依然报错{“error”:”get from source failed: E405″} 和楼上一样的错误,请问你是否还有其他修改!

            • avatar 堕落的鱼 Admin

              @黑苹果社区 新版本的begin主题使用的是comments-ajax-qt.js文件,请参照修改comments-ajax-qt.js文件