發現
因為之前一直使用第三方的社會化評論框來取代 WP 自身的評論,但是奈何多説廢了
2014-11-27 多説無法打開,開啓主題自帶評論,之後只好再次換回了自帶的評論框。 (好吧反正也沒人會來評論。)
但是換回自帶的評論框後發現了一個問題,那就是當開啓了 Ajax 之後無論發佈什麼內容的評論,都會導致 {「error」:」get from image source failed: E405″}報錯從而無法發佈評論。
以前使用 xiu 主題 加 七牛加速 一直沒出過錯誤 ,但是後來換了主題 卻沒法評論了。

原因
經百度後得到結論,七牛吧文件緩存走了。
原理就是 CDN 把你的 comments-ajax.js 文件給緩存走了,結果導致路徑錯誤,這時候我們有兩種選擇來修復這個問題。
- 修改 js 文件讓它能夠支持你的 CDN 路徑
- 將這個文件單獨排除在 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 可以正常例外。
