SpringBoot2.x攔截器會攔截static目錄下的靜態資源解決與不攔截指定目錄
阿新 • • 發佈:2018-11-24
一、不攔截static目錄下的檔案
目錄如下
瀏覽器訪問直接訪問js檔案會被攔截,這時在攔截器添的excludePathPatterns方法增加“/js/**”,這樣子就不會被攔截了。程式碼如下
@Override public void addInterceptors(InterceptorRegistry registry) { // addPathPatterns 用於新增攔截規則 // excludePathPatterns 使用者排除攔截 registry.addInterceptor(new MyInterceptor()).addPathPatterns("/**").excludePathPatterns("/toLogin","/login","/js/**"); }
二、不攔截指定目錄
例如不攔截my目錄下的所有檔案, 通過addResourceHandler新增對映路徑,然後通過addResourceLocations來指定路徑。
/** * 通過addResourceHandler新增對映路徑,然後通過addResourceLocations來指定路徑。 * 我們訪問自定義my資料夾中的elephant.jpg 圖片的地址為 http://localhost:8080/my/elephant.jpg * @param registry * addResourceLocations指的是檔案放置的目錄, * addResoureHandler指的是對外暴露的訪問路徑 */ @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/my/**").addResourceLocations("classpath:/my/"); //指定外部目錄 // registry.addResourceHandler("/my/**").addResourceLocations("file:E:/my/"); }
然後在攔截器增加不攔截的路徑,程式碼如下
/** * 攔截器 * @param registry */ @Override public void addInterceptors(InterceptorRegistry registry) { // addPathPatterns 用於新增攔截規則 // excludePathPatterns 使用者排除攔截 registry.addInterceptor(new MyInterceptor()).addPathPatterns("/**").excludePathPatterns("/toLogin","/login","/my/**","/js/**"); }