spring boot配置文件中 spring.mvc.static-path-pattern 配置項


spring boot項目中的靜態資源文件存放在static文件下面,當通過瀏覽器訪問這些靜態文件時,發現必須要添加static作為前綴才能訪問,折騰了一番后發現,這個前綴跟 spring.mvc.static-path-pattern 這個配置項有關。

spring:
    mvc:
        static-path-pattern: /static/**

項目中application.yml配置文件中,存在如上配置項時,訪問靜態資源文件要加static才行,當把這個配置項除掉時,不用加static作為前綴亦可進行正常訪問。

 

當spring boot自動裝配 org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration,當執行到org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration.WebMvcAutoConfigurationAdapter#addResourceHandlers方法時,類org.springframework.boot.autoconfigure.web.WebMvcProperties#staticPathPattern的默認值為 "/**"。如果配置項文件中存在spring.mvc.static-path-pattern 配置項,默認的配置項將會被覆蓋。

當通過瀏覽器進行訪問時,springMVC使用SimpleUrlHandlerMapping進行路由映射,當執行到方法 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping#lookupHandler 時,將會使用 spring.mvc.static-path-pattern 配置項來匹配url

 


免責聲明!

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



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