發現

因為之前一直使用第三方的社會化評論框來取代 WP 自身的評論,但是奈何多説廢了

2014-11-27 多説無法打開,開啓主題自帶評論,之後只好再次換回了自帶的評論框。 (好吧反正也沒人會來評論。)

但是換回自帶的評論框後發現了一個問題,那就是當開啓了 Ajax 之後無論發佈什麼內容的評論,都會導致 {「error」:」get from image source failed: E405″}報錯從而無法發佈評論。

以前使用 xiu 主題 加 七牛加速 一直沒出過錯誤 ,但是後來換了主題 卻沒法評論了。

原因

經百度後得到結論,七牛吧文件緩存走了。

原理就是 CDN 把你的 comments-ajax.js 文件給緩存走了,結果導致路徑錯誤,這時候我們有兩種選擇來修復這個問題。

  1. 修改 js 文件讓它能夠支持你的 CDN 路徑
  2. 將這個文件單獨排除在 CDN 的鏡像列表之外

1 、修改 comments-ajax.js 文件

這種方法的好處是你依舊可以體驗完整的 CDN 鏡像服務,你需要打開你主題目錄下對應的文件然後修改它,找到如下的代碼 (一般應該是在開頭的)
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('hsdate.qiniudn.com','ihuan.me');

其中 hsdate.qiniudn.com 網址換為你的七牛鏡像地址 ihuan.me 換為你的站點地址即可

這樣,修改完成後應該是下邊的樣子
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('hsdate.qiniudn.com','ihuan.me');

然後就保存上傳就好了,當然,我希望你能搞定七牛的文件更新 XD 。

2 、添加 CDN 鏡像例外

如果你和我一樣是使用

wpjam-qiniutek

來開啓 CDN 鏡像的,那你也可以選擇我這種修復辦法——直接將這個 js 文件排除在鏡像列表之外就好了,雖然加載的時候多了一個 js 文件,但省去了對付七牛那個緩慢的刷新過程,其實還是很不錯的,立竿見影啊~

另外,我想其他的 CDN 插件應該也會有類似的排除功能,你可以領會精神然後自己去插件裏找找——至於直接使用代碼實現 CDN 的大神……請出門左轉╮(╯▽╰)╭

好了,找到你 wpjam-qiniutek設置頁面,然後在下邊找到 「遠程圖片設置」這一項,將 comment-ajax 填寫進去就好了。

記得多個語句之間用英文的逗號來分隔哦!

使用 WP Super Cache 插件實現 CDN 加速的一樣 都填寫 comment-ajax

但是可以使用了,可多説也復活了,so 繼續多説,雖然多説評論框沒自個帶的好看。。。

聲明一下啊,測試了下 wpjam-qiniutek 插件無法設置例外  wpjam-qiniutek 只能設置圖片例外 使用 wpjam-qiniutek 的請使用 代碼方法。

博主安裝了個 WP Super Cache 來演示 WP Super Cache 的方法測試了下 WP Super Cache 可以正常例外。