關(guān)于SpringBoot攔截器攔截靜態(tài)資源的問(wèn)題
SpringBoot攔截器攔截靜態(tài)資源
使用springboot2.0+的版本建立攔截器攔截訪問(wèn)時(shí),發(fā)現(xiàn)將靜態(tài)的css/js資源也攔截了。
此時(shí)需要在攔截器中配置放行資源。
直接上代碼
//設(shè)置攔截,釋放靜態(tài)文件
registry.addInterceptor(new LoginHandlerInterceptero()).addPathPatterns("/**")
.excludePathPatterns("/user/login","/login.html","/css/**","/js/**");放行"/css/**"資源。
有些使用放行static文件夾來(lái)放行所有的靜態(tài)資源,不過(guò)SpringBoot默認(rèn)掃描static包下的靜態(tài)資源,所以好像不管用。
下圖是一次項(xiàng)目中配置的靜態(tài)資源釋放,

對(duì)文件結(jié)構(gòu)不是很清楚,所以直接配置釋放所有文件。
springboot攔截器為什么攔截靜態(tài)資源
項(xiàng)目目錄結(jié)構(gòu)如下所示
??
首先是以繼承的方式注冊(cè)攔截器配置
@Configuration
public class SpringMvcSupport_extends extends WebMvcConfigurationSupport {
@Autowired
private LoginInterceptor loginInterceptor;
@Override
protected void addInterceptors(InterceptorRegistry registry) {
//配置攔截器
registry.addInterceptor(loginInterceptor).
//對(duì)所有的資源進(jìn)行攔截,包括靜態(tài)資源
addPathPatterns("/**")
.excludePathPatterns("/login.html","/js/**","/css/**","/lib/**");
}此時(shí)訪問(wèn)靜態(tài)資源得到如下結(jié)果:

這種方式會(huì)攔截靜態(tài)資源我也不知道原因是什么希望后續(xù)補(bǔ)坑
但是如果以實(shí)現(xiàn)接口的形式來(lái)注冊(cè)攔截器的話就不會(huì)攔截靜態(tài)資源
@Configuration
public class SpringMvcSupport implements WebMvcConfigurer {
@Autowired
private LoginInterceptor loginInterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
//配置攔截器
registry.addInterceptor(loginInterceptor).
//對(duì)所有的資源進(jìn)行攔截,包括靜態(tài)資源
addPathPatterns("/**")
.excludePathPatterns("/login.html","/js/**","/css/**","/lib/**");
}運(yùn)行項(xiàng)目此時(shí)訪問(wèn)靜態(tài)資源就可以成功訪問(wèn):


這個(gè)問(wèn)題卡了很久很久/(ㄒoㄒ)/~~
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- springboot設(shè)置加載靜態(tài)資源的路徑(spring.resources.static-locations)
- SpringBoot中的static靜態(tài)資源訪問(wèn)、參數(shù)配置、代碼自定義訪問(wèn)規(guī)則詳解
- springboot攔截器不攔截靜態(tài)資源,只攔截controller的實(shí)現(xiàn)方法
- springboot應(yīng)用中靜態(tài)資源訪問(wèn)與接口請(qǐng)求沖突問(wèn)題解決
- SpringBoot2.x過(guò)后static下的靜態(tài)資源無(wú)法訪問(wèn)的問(wèn)題
- SpringBoot如何訪問(wèn)html和js等靜態(tài)資源配置
- springboot+thymeleaf打包成jar后找不到靜態(tài)資源的坑及解決
- SpringBoot無(wú)法訪問(wèn)/static下靜態(tài)資源的解決
- SpringBoot靜態(tài)資源及原理解析
相關(guān)文章
SpringSecurity詳解整合JWT實(shí)現(xiàn)全過(guò)程
JWT作為一個(gè)開(kāi)放的標(biāo)準(zhǔn)(?RFC?7519?),定義了一種簡(jiǎn)潔的,自包含的方法用于通信雙方之間以Json對(duì)象的形式安全的傳遞信息。接下來(lái)通過(guò)本文給大家介紹springSecurity+jwt實(shí)現(xiàn)互踢功能,需要的朋友可以參考下2022-07-07
java正則表達(dá)式優(yōu)化超詳細(xì)舉例講解
正則表達(dá)式是一種強(qiáng)大的文本處理工具,在數(shù)據(jù)驗(yàn)證、字符串搜索和替換等方面有廣泛應(yīng)用,這篇文章主要介紹了java正則表達(dá)式優(yōu)化的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-07-07
JVM內(nèi)存模型知識(shí)點(diǎn)總結(jié)
在本篇文章里小編給大家分享了關(guān)于JVM內(nèi)存模型的學(xué)習(xí)心得以及相關(guān)知識(shí)點(diǎn)總結(jié),有興趣的朋友們跟著學(xué)習(xí)下。2019-05-05
一文秒懂通過(guò)JavaCSV類(lèi)庫(kù)讀寫(xiě)CSV文件的技巧
本文給大家推薦第三方工具庫(kù) JavaCSV,用來(lái)造一些 csv 測(cè)試數(shù)據(jù)文件,使用超級(jí)方便,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2021-05-05
實(shí)例講解Java讀取一般文本文件和word文檔的方法
讀取一般文本文件很好辦,調(diào)用Java自帶的io包里的類(lèi)即可,富文本的doc文件我們可以用Apache的poi項(xiàng)目中的WordExtractor,這里我們一起來(lái)以實(shí)例講解Java讀取一般文本文件和word文檔的方法2016-06-06
Mybatis常用分頁(yè)插件實(shí)現(xiàn)快速分頁(yè)處理技巧
這篇文章主要介紹了Mybatis常用分頁(yè)插件實(shí)現(xiàn)快速分頁(yè)處理的方法。非常不錯(cuò)具有參考借鑒價(jià)值,感興趣的朋友一起看看2016-10-10
SpringBoot接收f(shuō)orm-data和x-www-form-urlencoded數(shù)據(jù)的方法
form-data和x-www-form-urlencoded是兩種不同的HTTP請(qǐng)求體格式,本文主要介紹了SpringBoot接收f(shuō)orm-data和x-www-form-urlencoded數(shù)據(jù)的方法,具有一定的參考價(jià)值,感興趣的可以了解一下2024-05-05

