由於非科班自學轉行,看了好多視頻,工作之余正在學習黑馬的淘淘商城,感覺受益良多,遇到一個比較奇怪的bug調了好久,遂心樂之分享於諸君
bug情況是這樣的:在商城的后台上傳圖片之后圖片回顯不出來,右鍵查看鏈接,發現鏈接被加了localhost://8080
原來正常的鏈接是這樣的:
ftp://ftpuser@192.168.25.133/home/ftpuser/www/images/2017/08/11/1502405214622039.png
或縮寫去掉寫為(我復制的鏈接用的這個):
192.168.25.133/home/ftpuser/www/images/2017/08/11/1502405214622039.png
錯誤的鏈接為:
http://localhost:8080/192.168.25.133/home/ftpuser/www/images/2017/08/11/1502405214622039.png
聰明的你可能此時就已經想通了問題出在哪里了吧!先別笑,這個問題我百度了好久都沒找到答案!
錯誤演示:
此時使用filezilla查看發現圖片已經上傳到ftp服務器里了,很奇怪為什么圖片沒有回顯呢?右鍵那張奇怪的圖片,復制鏈接用空白頁打開顯示404,
注意到鏈接中多加了localhost:8080/ ,去掉這個多余的也能訪問,這是為啥呢?
其實原因很簡單:
這個生成的鏈接是圖片上傳到服務器后返回的圖片url(這不是廢話),因為之前要登錄ftp服務器,所以在配置文件中沒有寫http://作為url,而且一般使用hostIp的地方都是不能寫http://的,寫了會報錯的,所以 就沒有寫,但是我需要返回一個json數據,url也就直接寫在里邊了,也沒多注意,數據格式如下:
{"error":0,"url":"192.168.25.133/images/2017/08/11/1502431975821476.png"}
由於現在的瀏覽器功能越來越強大了,不寫http://也能訪問,所以讓我糾結了一天,返回json之前定義一個字符串加上http://,問題就解決了。
正確的json返回url:
{"error":0,"url":"http://192.168.25.133/images/2017/08/11/1502431975821476.png"}
==================分割線================
好多同學知道是這個問題了,但是找起來還是找不到,提示一下,在拼接圖片url的controller中,只需要找到那個圖片的url,然后前邊加上“http://”+
豆芽菜長房高,他也是個菜。 ------------馬士兵馬老師