解決springboot 無法配置多個靜態(tài)路徑的問題
springboot 無法配置多個靜態(tài)路徑
默認(rèn)static路徑是可以訪問的,
對接天貓精靈需要額外的放開一個目錄aligenie,供天貓精靈端訪問,且路徑名稱無法更改。
這就導(dǎo)致了一個問題,默認(rèn)識別的靜態(tài)路徑META-INF/resources / resources / static / public 都是spring boot 認(rèn)為靜態(tài)資源應(yīng)該放置的位置,會自動去尋找靜態(tài)資源。無法識別aligenie路徑。
需要在啟動類里加一段代碼如下:
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/aligenie/**").addResourceLocations("classpath:/aligenie/");
}
springboot靜態(tài)路徑配置遇到的坑
用springboot做一個項目,遇到一個情況是前端要展示服務(wù)器保存的圖片,這時候涉及到一個靜態(tài)路徑配置的問題,踩到了一個坑
因為springboot是自帶tomcat的,所以我們沒必要去改變自己tomcat的設(shè)置,只需要在properties.yml里進(jìn)行配置或者繼承WebMvcConfigurationSupport類去寫一個配置類,其中yml配置的方法可以自行去找,網(wǎng)上一搜一大把,這里說下用配置類遇到的一個坑
按照網(wǎng)上一些博客的說法
@Configuration
public class UploadConfiguration extends WebMvcConfigurationSupport {
@Override
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/upload/**")//這個將應(yīng)用到url中
.addResourceLocations("file:///");//這里填的是圖片的絕對父路徑
super.addResourceHandlers(registry);
}
}
這樣跑了一下之后發(fā)現(xiàn),雖然圖片是可以直接通過url訪問到了,但是html、js等其他靜態(tài)資源(和圖片不在同一個文件夾下)訪問不到了...
解決方法
雖然現(xiàn)在大家都會前后端分離開發(fā),不會遇到這樣的問題,但是既然遇到了,還是得想辦法解決一下的,初步猜測的話,是因為配置類覆蓋了原來的默認(rèn)靜態(tài)路徑,導(dǎo)致了新配置起效但是原來的訪問不了的情況,所以我們再手動把原來的路徑添加進(jìn)來
@Configuration
public class UploadConfiguration extends WebMvcConfigurationSupport {
@Override
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/**")
.addResourceLocations("file:///");//這里是所有靜態(tài)資源的父文件夾絕對路徑,一般是webapps文件夾的路徑
super.addResourceHandlers(registry);
registry.addResourceHandler("/upload/**")//這個將應(yīng)用到url中
.addResourceLocations("file:///");//這里填的是圖片的絕對父路徑
super.addResourceHandlers(registry);
}
}
這樣問題就解決了!
最后再提一下,file:/// 這里的斜杠為什么是三條,網(wǎng)上有教程說是要進(jìn)行轉(zhuǎn)義,但是經(jīng)過實測一條和三條都是沒區(qū)別的,有點玄學(xué)~
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java實現(xiàn)刪除排序鏈表中的重復(fù)元素的方法
這篇文章主要介紹了Java實現(xiàn)刪除排序鏈表中的重復(fù)元素的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02
java javax.annotation.Resource注解的詳解
這篇文章主要介紹了javax.annotation.Resource注解的詳解的相關(guān)資料,需要的朋友可以參考下2016-10-10
Spring?JPA?deleteInBatch導(dǎo)致StackOverflow問題
這篇文章主要介紹了Spring?JPA?deleteInBatch導(dǎo)致StackOverflow問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05
SpringBoot之HandlerInterceptor攔截器的使用詳解
這篇文章主要介紹了SpringBoot之HandlerInterceptor攔截器的使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
SpringBoot深入講解單元測試與熱部署應(yīng)用
這篇文章介紹了SpringBoot單元測試與熱部署,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-06-06
spring-security關(guān)閉登錄框的實現(xiàn)示例
這篇文章主要介紹了spring-security關(guān)閉登錄框的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05
SpringBoot中dubbo+zookeeper實現(xiàn)分布式開發(fā)的應(yīng)用詳解
這篇文章主要介紹了SpringBoot中dubbo+zookeeper實現(xiàn)分布式開發(fā)的應(yīng)用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11

