默認Springboot將從如下位置按如下優先級(從高到低)加載jar包對應前端靜態資源:
1.jar包同級static目錄
2.jar包同級public目錄
3.jar包同級resource目錄
4.jar包/META-INF/resources
在調試模式下,Springboot將從class目錄中按如下優先級(從高到低)加載對應前端靜態資源
1.class目錄下static目錄
2.class目錄下public目錄
3.class目錄下resource目錄
4.class目錄下/META-INF/resources
通過設置spring.resources.static-locations自定義Spring boot加載前端靜態資源路徑
spring.resources.static-locations: file:D:/public/
亦可以指定先后順序:
spring.resources.static-locations=classpath:/static,classpath:/public,classpath:/resources,classpath:/META-INF/resource
如果指定了攔截器,該屬性有可能失效
需要在攔截器ResourceHandlerRegistry中通過addLocations()指定對應路徑。
如果指定@EnableWebMvc注解也會導致spring.resources.static-locations失效。如果使用@EnableWebMvc,會自動覆蓋原有靜態文件目錄為src/main/webapp,如果要指定原靜態文件目錄,需重寫addResourceHandlers方法