在使用thymeleaf加載css或js樣式,當我們進入登錄頁的時候發現,所有的樣式都是加載失敗的。原因是在新版中有這樣一個坑……:
當我們設置了addInterceptors-注冊攔截器的時候,通常會這樣設置
/** * 注冊攔截器 */ @Override public void addInterceptors(InterceptorRegistry registry) { // 攔截除了登錄頁的全部請求,不攔截靜態資源 registry.addInterceptor(new LoginHandlerInterceptor()).addPathPatterns("/**") .excludePathPatterns("/", "/login.html", "/user/login"); }
這樣可以保證未登錄的用戶無法進入首頁。那么問題就來了,我們要訪問的靜態資源的路徑沒有寫入到這里。就會被默認攔截,所以才導致加載失敗的問題。解決方法就比較簡單了,只需要把靜態資源的路徑扔進來就可以了,比如(具體路徑看你個人的,我這個是在static/css這樣的路徑下。你也可以直接/*.css來放行)
/** * 注冊攔截器 */ @Override public void addInterceptors(InterceptorRegistry registry) { // 攔截除了登錄頁的全部請求,不攔截靜態資源 registry.addInterceptor(new LoginHandlerInterceptor()).addPathPatterns("/**") .excludePathPatterns("/", "/login.html", "/user/login","/css/**","/fonts/**","/img/**","/js/**","/media/**"); }
如上,問題解決。
