SpringBoot 静态资源映射
标题:SpringBoot 静态资源映射
1)、默认静态资源映射
Spring Boot 对静态资源映射提供了默认配置
Spring Boot 默认将 /** 所有访问映射到以下目录:
classpath:/static
classpath:/public
classpath:/resources
classpath:/META-INF/resources
2、自定义静态资源访问
试想这样一种情况:一个网站有文件上传文件的功能,如果被上传的文件放在上述的那些文件夹中会有怎样的后果?
网站数据与程序代码不能有效分离;
当项目被打包成一个.jar文件部署时,再将上传的文件放到这个.jar文件中是有多么低的效率;
网站数据的备份将会很痛苦。
此时可能最佳的解决办法是将静态资源路径设置到磁盘的基本个目录。
(1).第一种方法
将“E:\upload\”下的图片映射到“/myPic/**”路径下
package com.offcn.springbootdemo1.test;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry){
registry.addResourceHandler("/myPic/**").
addResourceLocations("file:E:\\upload\\");
/* registry.addResourceHandler("/webjars/**").
addResourceLocations("classpath:/META-INF/resources/webjars/");*/
}
}
(2).第二种方法
首先,我们配置application.properties
web.upload-path=E:/upload/
spring.mvc.static-path-pattern=/**
spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/public/,classpath:/static/,file:${web.upload-path}
web.upload-path:这个属于自定义的属性,指定了一个路径,注意要以/结尾;
spring.mvc.static-path-pattern=/**:表示所有的访问都经过静态资源路径;
spring.resources.static-locations:在这里配置静态资源路径,前面说了这里的配置是覆盖默认配置,所以需要将默认的也加上否则static、public等这些路径将不能被当作静态资源路径,在这个最末尾的file:${web.upload-path}之所有要加file:是因为指定的是一个具体的硬盘路径,其他的使用classpath指的是系统环境变量。
上一篇: 项目对接使用httpclient和json传输中文乱码问题解决
下一篇: HttpClient
推荐阅读
-
springboot操作静态资源文件的方法
-
iOS中.a和.framework静态库的创建与.bundle资源包的使用详解
-
Springboot项目打war包docker包找不到resource下静态资源的解决方案
-
Spring Boot 中的静态资源放置位置
-
iOS中.a和.framework静态库的创建与.bundle资源包的使用详解
-
Android控件系列之XML静态资源使用介绍
-
Django静态资源URL STATIC_ROOT的配置方法
-
Spring Boot实战之静态资源处理
-
Springboot 使用 JSR 303 对 Controller 控制层校验及 Service 服务层 AOP 校验 使用消息资源文件对消息国际化
-
SpringBoot静态资源css,js,img配置方案