小編給大家分享一下在Springboot2.3中如何訪問本地路徑下靜態(tài)資源,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
創(chuàng)新互聯(lián)公司主營南岔網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,重慶APP軟件開發(fā),南岔h5微信小程序搭建,南岔網(wǎng)站營銷推廣歡迎南岔等地區(qū)企業(yè)咨詢最近在做的一個項目中有一個比較奇葩的需求:
要在springboot中,上傳本地的圖片進(jìn)行展示
我的第一反應(yīng)是,直接在數(shù)據(jù)庫字段加一個存儲本地路徑的字段,然后用thymeleaf的th:src渲染到前端就好了嘛!
理想很豐滿,但現(xiàn)實卻很骨感~
前端報了這樣的錯誤Not allowed to load local resource
于是我想到了可以使用IO將圖片先上傳到static/images目錄下,這樣就不會出現(xiàn)禁止訪問本地路徑的問題了
但是這樣實現(xiàn),問題又來了:上傳后的圖片必須重啟springboot,才能進(jìn)行展示,否則無法加載
這個應(yīng)該是因為springboot在初始化時加載靜態(tài)資源,運(yùn)行時導(dǎo)入的資源只能在再次初始化時加載
于是,我苦思冥想,查閱了多方資料,終于使用本地虛擬路徑的方式,解決了這個問題
正片開始:
1.首先配置一個配置類
import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configuration public class MyConfigurer implements WebMvcConfigurer { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/image/**").addResourceLocations("file:E:/vote_images/"); } }