最近在學SpringBoot,在整合Thymeleaf的時候,配置攔截器。教學上講SpringBoot已經做好了靜態資源映射,所以不需要特地去做排除攔截
以下代碼就是我在做登錄攔截的時候配置的攔截。
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new LoginHandleInterceptor()).addPathPatterns("/**")
.excludePathPatterns("/","/index.html","/user/login");
}
一開始,資源都能映射,一切感覺都OK,上午搞定后吃個飯,下午繼續搞的時候,發現有的樣式突然失效了。
在谷歌瀏覽器檢查問題的時候,發現了這句話,
DevTools failed to parse SourceMap:
-------------------------------------------------------------------------------------------
普遍解釋是
在現在寫網站的時候,如果有很多的javascript文件,拿ASP.NET NVC來說,
在渲染內容到客戶端瀏覽器的時候,如果你使用一些Bundle類的話,能夠合並並且壓縮那些js文件,
並且去除其中的空格等元素,從而減小文件的容量,提高網頁的反應速度。
但是這樣一樣造成的問題就是在瀏覽器端無法對js文件進行調試,因為進過壓縮的文件很緊湊,沒有空格與換行。
概括來講,SourceMap就是如何把壓縮后的js代碼映射成格式化代碼的方法。
當你在Production環境部署代碼的時候,伴隨着壓縮與優化話的js代碼,
還要有一個包含原始js代碼的sourcemap文件。當客戶端瀏覽器Chrome在收到這個壓縮后的js文件后,
它會自動的去尋找服務器上相關的sourcmap文件並把壓縮的js代碼轉換成格式規范的js代碼。
以上摘抄與https://blog.csdn.net/sundacheng1989/article/details/51118865
----------------------------------------------------------------------------------
總之所有的解決辦法大概都是這幅圖
但是我在關掉開發者工具額這兩個選項后,出現了另一個報錯
Resource interpreted as Stylesheet but transferred with MIME
這個錯誤百度了一下,各種解決辦法。頭都大了。然后在惱火中一直點擊
Resource interpreted as Stylesheet but transferred with MIME后面的地址鏈接,一直被我的攔截器攔住跳回登錄
頁的時候。在想是不是攔截器的問題。注釋了一下,發現就是這逼在搞鬼。我也不知道SpringBoot到底有沒有對靜態資源自動映射。
總之我把攔截的代碼加上了紅字的代碼就OK了。
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new LoginHandleInterceptor()).addPathPatterns("/**")
.excludePathPatterns("/","/index.html","/user/login","asserts/**","webjars/**");
}
以上是我的解決方法

