標簽:七牛
WordPress技巧解決百度UEditor編輯器上傳的圖片無法被七牛CDN自動緩存問題
百度UEditor編輯器雖然非常好用,但是卻也存在著一些與其它插件沖突的情況。下面要為大家分享的是通過百度UEditor編輯器上傳的圖片,無法被七牛CDN自動緩存的解決方法。之前為大家推薦了百度UEditor插件,不了解的可以看看:百度UEditor編輯器插件1.4.3.1 For WordPress原因分析通過百度UEditor編輯器上傳的圖片,通過審查元素我們可以看到,圖片鏈接只有路徑(點擊放大):而產生只有路徑的原因是百度UEditor編輯器上傳圖片時自動添加的地址就只有路徑:而要達到使七牛識別,圖片鏈接就必須帶上網站地址,如下圖所示(點擊放大):解決方法我們需要達到的目標是鏈接完整,而UEditor編輯器上傳的圖片,從上傳時的鏈接就不完整,所以我們需要解決的就是讓UE編輯器總動在鏈接上添加網站鏈接,使鏈接完整。在服務器上打開/wp-content/plugins/ueditor/ueditor/php文件夾,找到config.json文件,編輯這個文件,打開如下(點擊放大):我們可以看到,小編為本站編輯好的第11行紅框位置,只要在雙引號中添加自己網站地址即可。2016年3月10日更新先森為了發出此文之前的文章內圖片也能重新被七牛緩存,動了點腦子,想要解決這個問題。首先,之前的文章圖片的問題就是只有鏈接只有路徑,沒有域名,所以先森首先想到的就是為圖片添加域名。在2016年3月9日先森發布的文章中提到過,知更鳥為我們提供了一個為WordPress文章圖片自動添加鏈接到原圖的代碼:WordPress插件Auto Highslide代碼化折騰小記知更鳥的代碼是為WordPress文章中圖片添加鏈接,所以先森就想就此代碼進行改編,使其能夠為圖片增加域名。先森的JavaScript純屬自學,而且只學了一點,雖然最后成功了,但其中的艱辛卻無人可知。不多說,這接上最終代碼:<script type="text/javascript">$(function() { $('#newsContent img').each(function(i){ var str=$(this).text() //或許應該是var str=this.src if(str.indexOf("capjsj.cn")==-1){ $(this).attr("src",this.src); } });});</script>然而代碼雖然是弄出來了,但是先森發現,這只是從表面上更改了鏈接,然而源代碼確是沒有改變,所以就無法緩存這些圖片了。不過,雖然繞了個大彎子,但先森還是終于想到了正確的做法——替換。先森的數據庫沒有學好,所以一直小心翼翼的不敢去觸碰數據庫,但這次終于還是要碰了。數據庫的替換語句大概是這樣的:update 表 set 內容字段=replace(內容字段,'需要被替換字符串','替換字符串')先森的替換代碼是這樣的:update wp_posts set post_content=replace(post_content,'src="/ueditor','src="//www.cnidcc.cn/ueditor')即:用'src="//www.cnidcc.cn/ueditor'替換掉'src="/ueditor'。這樣非常簡單的就解決了問題,論學好知識的重要性。。。有任何疑問,歡迎在下方評論區提出,也歡迎在頁面頂部右方關注我的微博(@成航先森)。
建站分享, WordPress技巧WordPress使用七牛CDN導致ajax評論報錯{“error”:”get from image source failed: E405″}
起因:最近流量不夠用了,所以就開始使用七牛CDN用以減少流量消耗。七牛的免費CDN配額還是很給力的,以前不想用完全是因為用的七牛官方WordPress插件完全沒有作用,沒有效果,所以棄用。后來發現用水煮魚的七牛插件才是正解,所以才開始啟用。本以為沒有問題了,結果發現用七牛CDN之后,文章頁的返回頂部出現BUG了。本來嫌麻煩,也就不想修復了。但是這卻一直成為了心中的梗,強迫癥涌上心頭,決定好好研究一下怎么回事。結果,返回頂部還沒有解決,卻意外的發現評論模塊又出了問題,也就是題目中說的報錯:{"error":"get from image source failed: E405"}。如下:原因:經過百度后了解到,確實是CDN的問題。CDN把你的comments-ajax.js文件給緩存走了,結果導致路徑錯誤,這時候我們有兩種選擇來修復這個問題。1、修改js文件讓它能夠支持你的CDN路徑2、將這個文件單獨排除在CDN的鏡像列表之外解決方案:1、修改comments-ajax.js文件這種方法的好處是你依舊可以體驗完整的CDN鏡像服務,你需要打開你主題目錄下的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('7xjad9.com1.z0.glb.clouddn.com','www.cnidcc.cn');這樣,修改完成后應該是下邊的樣子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('7xjad9.com1.z0.glb.clouddn.com','www.cnidcc.cn');然后將文件更新上傳到你的服務器,再到七牛空間管理去刷新該文件。2、添加CDN鏡像例外使用WP Super Cache來開啟CDN鏡像,直接將comments-ajax.js這個js文件排除在鏡像列表之外,雖然加載的時候多了一個js文件,但省去了對付七牛那個緩慢的刷新過程,其實還是很不錯的,立竿見影啊~WP Super Cache在WordPress后臺插件安裝中可直接搜索安裝。方法:找到WP Super Cache的CDN頁面,然后在下邊找到“如果是之前有則排除”這一項,將comment-ajax填寫進去就好了。如下圖(點擊放大,放大后按“F”鍵放至最大):這樣,就只有一個文件被排除在外了。好了,大家去試試吧,有任何疑問可在底部討論區提出。

川公網安備 51011202000104號