使用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。

推薦閱讀: