Spring Boot 配置静态资源处理
来源:互联网 发布:163 imap 端口 编辑:程序博客网 时间:2024/06/07 08:50
- 先讲几点有关嵌入式 Tomcat 运行的事项
- request.getSession().getServletContext().getRealPath(“/”),这个不用多说了,总之很重要,先将其简称为 docBase,即 “文档根目录”
- 当项目中不存在 src/main/webapp 目录时,docBase 为C盘临时目录,例如 C:\Users\Administrator\AppData\Local\Temp\tomcat-docbase.2872246570823772896.8080\
- 当项目中存在 src/main/webapp 目录时
- 如果该目录存在于 Maven 项目父模块中,则 docBase 为父模块的 src/main/webapp
- 如果 Maven 项目父模块缺少该目录,此时,即使子模块存在 src/main/webapp 目录,也视为不见,docBase 为C盘临时目录
- 综上,如果我们想要通过 “文档根目录” 来定位到某些资源的话,首先要保证存在 src/main/webapp 目录,否则,建议直接定位到 classpath 下的资源(即 src/main/resource 目录下的资源),具体配置如下
不存在 @EnableWebMVC
- Spring Boot 的 @EnableAutoConfiguration 会触发自动配置类 WebMvcAutoConfiguration,该类配置了一些默认的静态资源映射
- 自动映射 localhost:8080/** 为
- classpath:/resources/
- classpath:/static/
- classpath:/public/
- classpath:/META-INF/resources/
- 自动映射 localhost:8080/webjars/** 为
- classpath:/META-INF/resources/webjars/
- 自动映射 localhost:8080/** 为
- 此时,我们不需要多作些什么,只需要将静态资源放入 src/main/resources 目录下的 resources、static 或 public 文件夹下,可直接通过 url 定位相关资源,例如 localhost:8080/index.html 定位到 src/main/resources/static/index.html
- 但是,如果使用了以下的自定义配置,则以上默认配置统统无效
@Configurationpublic class GoWebMvcConfigurerAdapter extends WebMvcConfigurerAdapter { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { //配置静态资源处理 registry.addResourceHandler("/**") .addResourceLocations("classpath:/resources2/") .addResourceLocations("classpath:/static2/") .addResourceLocations("classpath:/public2/") .addResourceLocations("classpath:/META-INF/resources2/"); }}
如果存在 @EnableWebMVC
- 如果使用了 @EnableWebMvc,那么自动配置类 WebMvcAutoConfiguration 会失效,因此官方默认的 /static, /public, META-INF/resources, /resources 都不复存在
- 这种情况下,我们只能手动添加以下配置,切记,如果不添加 classpath 前缀,则定位到 “文档根目录”(一般是 src/main/webapp 目录)下的资源,此时,我们可以将静态资源放入 src/main/webapp 目录下的 resources、static 或 public 文件夹下,然后通过 url 直接定位相关资源,例如 localhost:8080/index.html 定位到 src/main/webapp/static/index.html
@Configurationpublic class GoWebMvcConfigurerAdapter extends WebMvcConfigurerAdapter { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { //配置静态资源处理 registry.addResourceHandler("/**") .addResourceLocations("resources/") .addResourceLocations("static/") .addResourceLocations("public/") .addResourceLocations("META-INF/resources/"); }// @Override// public void addResourceHandlers(ResourceHandlerRegistry registry) {// //配置静态资源处理// registry.addResourceHandler("/**")// .addResourceLocations("classpath:/resources/")// .addResourceLocations("classpath:/static/")// .addResourceLocations("classpath:/public/")// .addResourceLocations("classpath:/META-INF/resources/");// }}
阅读全文
0 0
- Spring Boot 配置静态资源处理
- 【Spring Boot】Spring Boot 静态资源处理
- Spring Boot 静态资源处理
- Spring Boot 静态资源处理
- spring boot 静态资源处理
- Spring Boot 静态资源处理
- Spring Boot 静态资源处理
- Spring Boot 静态资源处理
- Spring Boot 静态资源处理
- Spring Boot 静态资源处理
- Spring Boot 静态资源处理
- Spring Boot 静态资源处理
- Spring Boot 静态资源处理
- Spring Boot 静态资源处理
- Spring Boot 静态资源处理
- Spring Boot 静态资源处理
- Spring Boot 静态资源处理
- Spring Boot 静态资源处理
- hdu3333 (线段树+离散化+离线处理)
- 画一个五角星
- SQL数据库开发基础
- 在OC项目下实现SwiftMonkey
- extends作业一
- Spring Boot 配置静态资源处理
- 在Jenkins下集成SwiftMonkey
- vivado中设置多线程编译
- 欢迎使用CSDN-markdown编辑器
- OJ上scanf的输入问题
- Solr安装配置
- hdu 5984 Pocky (16青岛现场赛)找规律
- extends作业二
- JSP学习