自己寫了個測試的攔截器,運行后就不能直接訪問index.html了,后來通過控制器來轉換可以了,自己又悶着頭學習。
每次訪問網頁的時候就在后台打了幾個字"自定義攔截器...",什么功能沒有,但釋放了我一直對攔截器諱莫如深的感覺。
做的網頁Jequery和bootstrap樣式都是直接訪問網上的,昨天把這些資源文件下到本地,運行后樣式全都沒了,Jequery也失效了。狐疑。
體現了自己的學藝不精,折騰到半夜3點都沒有找到突破口,然實在太困,憂心忡忡的洗漱睡覺。
一早到學習群里問候,有同學很熱情,但是沒有解決問題。小D問,是報的404還是什么,我回復,網頁找到了,就是樣式全沒了。
(小竅門:引入的資源文件,如果點的進去打開了文件,那么說明路徑是正確的)
后來解決問題的切入點就是404.
打開網頁F12調試,在網絡頁,可不!資源Jequery和bootstrap都沒有訪問到,報的404. 好,有了異常信息才好解決問題,不然就是個無頭蒼蠅,費盡了所有力氣還不知道正確的方向。
怎么會訪問不到資源呢?百思得了其姐,恍然大悟,靈機閃現,謝謝神明!問題出在攔截器上!
訪問資源的路徑被攔截器半道劫下了。
好,查找攔截器不攔截的方法。
首先到攔截器查看:
------------------------------------------------------------------------------
@Override
protected void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new UserInterceptor())
.addPathPatterns("/**")
.excludePathPatterns("/favicon.ico");
--------------------------------------------------------------------------------
look! /** ,只要是“/”全部攔截,在鏈式函數excludePathPatterns("/favicon.ico");里增加了“/static/**”,但是沒用;
繼續查,發現了函數:
----------------------------------------------------------------------------------------------------
@Override
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
super.addResourceHandlers(registry);
}
------------------------------------------------------------------------------------------------------
滿心歡喜,興高采烈再次運行。
Wonderful!一切又回復了美好!喜笑顏開,雖然折騰我了一天,但還是拿下了。:)