spring boot程序的static目录默认资源路径源码
private static final String[] CLASSPATH_RESOURCE_LOCATIONS = {
"classpath:/META-INF/resources/", "classpath:/resources/",
"classpath:/static/", "classpath:/public/" };
可以看到springboot默认加载资源的路径是在calsspath下,这样jar打包的web项目资源文件只能放在jar内。这样修改和维护起来非常不方便。
参考官方文档,static资源也可以放在jar包外部,只要在配置文件中增加static-locations: 就可以直接在配置文件中覆盖默认的静态资源路径的配置信息
application.yml增加配置
spring:
resources:
#web静态页面路径
# static-locations: file:///E:/workspace/demo/target/demo/static/,file:///E:/workspace/demo/target/demo/public/
#当前启动目录下相对路径
static-locations: file:./static/,file:./public/