当前位置: 代码迷 >> 综合 >> Spring boot项目设置静态资源(spring.resources.static-locations)
  详细解决方案

Spring boot项目设置静态资源(spring.resources.static-locations)

热度:94   发布时间:2023-09-19 19:18:46.0

默认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
Spring boot项目设置静态资源(spring.resources.static-locations)

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

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

 

  相关解决方案