springboot2攔截器和靜態資源的訪問


自己寫了個測試的攔截器,運行后就不能直接訪問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!一切又回復了美好!喜笑顏開,雖然折騰我了一天,但還是拿下了。:)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM