Spring boot项目设置加载静态资源的路径(-locations)

时间:2025-03-20 09:44:30

默认Springboot将从如下位置按如下优先级(从高到低)加载jar包对应前端静态资源:

包同级static目录
包同级public目录
包同级resource目录
包/META-INF/resources

在调试模式下,Springboot将从class目录中按如下优先级(从高到低)加载对应前端静态资源

目录下static目录
目录下public目录
目录下resource目录
目录下/META-INF/resources

通过设置-locations自定义Spring boot加载前端静态资源路径

-locations: file:D:/public/
亦可以指定先后顺序:
-locations=classpath:/static,classpath:/public,classpath:/resources,classpath:/META-INF/resource

如果指定了拦截器,该属性有可能失效
需要在拦截器ResourceHandlerRegistry中通过addLocations()指定对应路径。

如果指定@EnableWebMvc注解也会导致-locations失效。如果使用@EnableWebMvc,会自动覆盖原有静态文件目录为src/main/webapp,如果要指定原静态文件目录,需重写addResourceHandlers方法