解決springboot 無(wú)法配置多個(gè)靜態(tài)路徑的問題
springboot 無(wú)法配置多個(gè)靜態(tài)路徑
默認(rèn)static路徑是可以訪問的,
對(duì)接天貓精靈需要額外的放開一個(gè)目錄aligenie,供天貓精靈端訪問,且路徑名稱無(wú)法更改。
這就導(dǎo)致了一個(gè)問題,默認(rèn)識(shí)別的靜態(tài)路徑META-INF/resources / resources / static / public 都是spring boot 認(rèn)為靜態(tài)資源應(yīng)該放置的位置,會(huì)自動(dòng)去尋找靜態(tài)資源。無(wú)法識(shí)別aligenie路徑。
需要在啟動(dòng)類里加一段代碼如下:
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/aligenie/**").addResourceLocations("classpath:/aligenie/");
}
springboot靜態(tài)路徑配置遇到的坑
用springboot做一個(gè)項(xiàng)目,遇到一個(gè)情況是前端要展示服務(wù)器保存的圖片,這時(shí)候涉及到一個(gè)靜態(tài)路徑配置的問題,踩到了一個(gè)坑
因?yàn)閟pringboot是自帶tomcat的,所以我們沒必要去改變自己tomcat的設(shè)置,只需要在properties.yml里進(jìn)行配置或者繼承WebMvcConfigurationSupport類去寫一個(gè)配置類,其中yml配置的方法可以自行去找,網(wǎng)上一搜一大把,這里說(shuō)下用配置類遇到的一個(gè)坑
按照網(wǎng)上一些博客的說(shuō)法
@Configuration
public class UploadConfiguration extends WebMvcConfigurationSupport {
@Override
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/upload/**")//這個(gè)將應(yīng)用到url中
.addResourceLocations("file:///");//這里填的是圖片的絕對(duì)父路徑
super.addResourceHandlers(registry);
}
}
這樣跑了一下之后發(fā)現(xiàn),雖然圖片是可以直接通過url訪問到了,但是html、js等其他靜態(tài)資源(和圖片不在同一個(gè)文件夾下)訪問不到了...
解決方法
雖然現(xiàn)在大家都會(huì)前后端分離開發(fā),不會(huì)遇到這樣的問題,但是既然遇到了,還是得想辦法解決一下的,初步猜測(cè)的話,是因?yàn)榕渲妙惛采w了原來(lái)的默認(rèn)靜態(tài)路徑,導(dǎo)致了新配置起效但是原來(lái)的訪問不了的情況,所以我們?cè)偈謩?dòng)把原來(lái)的路徑添加進(jìn)來(lái)
@Configuration
public class UploadConfiguration extends WebMvcConfigurationSupport {
@Override
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/**")
.addResourceLocations("file:///");//這里是所有靜態(tài)資源的父文件夾絕對(duì)路徑,一般是webapps文件夾的路徑
super.addResourceHandlers(registry);
registry.addResourceHandler("/upload/**")//這個(gè)將應(yīng)用到url中
.addResourceLocations("file:///");//這里填的是圖片的絕對(duì)父路徑
super.addResourceHandlers(registry);
}
}
這樣問題就解決了!
最后再提一下,file:/// 這里的斜杠為什么是三條,網(wǎng)上有教程說(shuō)是要進(jìn)行轉(zhuǎn)義,但是經(jīng)過實(shí)測(cè)一條和三條都是沒區(qū)別的,有點(diǎn)玄學(xué)~
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
JAVA LinkedList和ArrayList的使用及性能分析
JAVA LinkedList和ArrayList的使用及性能分析,這篇文章也是以JAVA List的總結(jié)。2013-11-11
MyBatis-Plus 集成動(dòng)態(tài)多數(shù)據(jù)源的實(shí)現(xiàn)示例
本文主要介紹了MyBatis-Plus 集成動(dòng)態(tài)多數(shù)據(jù)源的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
Spring事務(wù)&Spring整合MyBatis的兩種方式
這篇文章主要介紹了Spring事務(wù)&Spring整合MyBatis的兩種方式,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-02-02
java?stream使用指南之sorted使用及進(jìn)階方式
這篇文章主要介紹了java?stream使用指南之sorted使用及進(jìn)階方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05
Java下http下載文件客戶端和上傳文件客戶端實(shí)例代碼
這篇文章主要介紹了Java下http下載文件客戶端和上傳文件客戶端實(shí)例代碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-12-12
java源碼解析之String類的compareTo(String otherString)方法
這篇文章主要給大家介紹了關(guān)于java源碼解析之String類的compareTo(String otherString)方法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-09-09
Java編程rabbitMQ實(shí)現(xiàn)消息的收發(fā)
RabbitMQ是一個(gè)在AMQP基礎(chǔ)上完成的,可復(fù)用的企業(yè)消息系統(tǒng),本文通過實(shí)例來(lái)給大家分享通過操作rabbitMQ實(shí)現(xiàn)消息的收發(fā),感興趣的朋友可以參考下。2017-09-09
Spring中@RabbitHandler和@RabbitListener的區(qū)別詳析
@RabbitHandler是用于處理消息的方法注解,它與@RabbitListener注解一起使用,這篇文章主要給大家介紹了關(guān)于Spring中@RabbitHandler和@RabbitListener區(qū)別的相關(guān)資料,需要的朋友可以參考下2024-02-02
Java通過Process類Runtime.getRuntime().exec()執(zhí)行bat腳本程序
用Java編寫應(yīng)用時(shí),有時(shí)需要在程序中調(diào)用另一個(gè)現(xiàn)成的可執(zhí)行程序或系統(tǒng)命令,這篇文章主要給大家介紹了關(guān)于Java如何通過Process類Runtime.getRuntime().exec()執(zhí)行bat腳本程序的相關(guān)資料,需要的朋友可以參考下2024-01-01

