使用SpringBoot配置虛擬化路徑用於圖片的展示
配置虛擬化路徑用於圖片的展示
springboot默認可以訪問resources下的static文件夾下的靜態資源,我們一般將圖片指定上傳到static下的某個文件夾
例如images:
開發階段可以使用,但是當項目打成jar包就無法使用,運行會報出無法找到文件路徑。這時候就需要配置虛擬路徑,用來指定到硬盤下的固定地址。
1.首先我們在application.yml文件
配置文件上傳的路徑,以及訪問的地址:
這裡我設置瞭文件上傳之後統一保存到c盤下的images文件夾下,訪問的地址為:http://localhost:8888/images/xxx.jpg
2.配置虛擬路徑的映射
上面/images/**表示的是服務器請求圖片的地址 例如:http://localhost:8888/images/xxx.jpg 都會去映射到本地C:/images/xxx.jpg
註意:我上述代碼裡取到配置文件中的rootSavePath,但是並沒有使用,而是自己寫的file:/c:/images,因為直接使用該變量會報錯,路徑前面必須加file。
配置虛擬路徑訪問本地圖片問題
關於springboot+vue,改變服務器文件夾圖片訪問顯示問題
問題
本人最近用springboot+vue做瞭個項目,裡面有關圖片顯示和修改功能。
1.做瞭虛擬路徑,能訪問到文件夾的圖片
2.前端使用element的el-upload上傳圖片,後端用MultipartFile file接收,並替換原來文件夾的圖片,能成功,本地文 件夾圖片確實替換成功
3.確定本地圖片改變後,發現頁面圖片未改變,刷新也沒改變
舉個例子
1.使用虛擬路徑,前端的<img src="http://localhost:8080/img/img1.jpg"> 能訪問到本地圖片img1.jpg
2.然後用刪除本地img1.jpg,放入img2.jpg,修改名稱為img1.jpg,其實意思就是修改瞭img1圖片但名稱不變。
3.結果<img src="http://localhost:8080/img/img1.jpg">顯示的還是原來的img1圖片.刷新頁面也一樣,隻能把圖片路徑單獨在瀏覽器顯示並刷新才出現更換的圖片。
4.猜測是瀏覽器的什麼機制引起的。但是這樣效果不太友好,畢竟我想要的是可以修改圖片直接在瀏覽器看到效果,
5.後面還是刪除原圖,用新圖的路徑給img.有人有差不多的問題嗎?有更好的解決方法歡迎評論。
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- springboot文件上傳保存路徑的問題
- springboot文件虛擬路徑映射方式
- springboot默認的5種加載路徑詳解
- 使用springboot訪問圖片本地路徑並映射成url
- Spring Boot 2.x 實現文件上傳功能