發現

因為之前一直使用第三方的社會化評論框來取代 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 可以正常例外。