对于springboot项目,通常都是把静态资源放到resources目录下,这样就不需要其他配置就能够直接访问
IDEA中若需要添加webapp资源目录并且要能够被访问,则需要做一些额外的配置
1.创建webapp资源目录
在springboot项目中,当需要在src/main目录下创建webapp目录:首先需要进行如下设置
Project Structure----Project Settings----Facets,在项目名上右键新建web,
然后点击已添加的web设置Web Resource Directory,将目录设置为src/main/webapp
2.配置插件
springboot启动后对于webapp目录下的文件有时碰到无法访问的情况
由于spring默认会到classpath:/meta-INF/resources/路径下找资源
所以可以在pom.xml文件中添加如下内容来解决,表示编译的时候将webapp目录中所有文件输出到meta-INF/resources目录中
src/main/webapp meta-INF/resources ****
其他解决办法:
pom文件引入 插件 maven-resources-plugin 的 copy-resources插件,然后按照下面这样配置下,就可以轻松访问了
静态资源的映射规则maven-resources-plugin copy-public package copy-resources src/main/webapp/public ${project.build.directory}/public
静态资源的配置主要关注自动配置类WebMvcAutoConfiguration:
``org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration.WebMvcAutoConfigurationAdapter#addResourceHandlers`
addResourceHandlers方法包含了springboot对静态资源映射、处理规则:
- 所有/webjars @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { //addResourceLocations:指的是内部文件放置的目录 //addResoureHandler指的是对外暴露的访问路径 registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/"); } }



