springboot自定义静态资源访问
程序员文章站
2022-07-10 20:21:26
...
springboot 静态资源位置,classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,默认资源放在这几个目录下,是可以访问的,但是项目中往往需要自己定义静态资源加载的位置,这个时候就需要我们进行配置或者在项目中加一个配置类解决这个需求问题。
1、在配置文件中进行配置
配置访问静态资源请求路径
spring.mvc.static-path-pattern=/basedata/**
配置自定义静态资源存储位置,这样配置之后默认静态资源访问就不生效了
spring.resources.static-locations=file:./basedata/
该配置项也可以配置成数组形式 举例如下
自定义静态资源存储位置,可以用 ${}代替值
web.source.unzip=/aiplatformadmin/AI3.1/upload/audio/
spring.resources.static-locations[0]=classpath:/public/
spring.resources.static-locations[1]=classpath:/static/
spring.resources.static-locations[2]=classpath:/resources/
spring.resources.static-locations[3]=classpath:/META-INF/resources/
spring.resources.static-locations[4]=file:${web.source.unzip}
通过举例配置,这样默认静态资源位置和自定义静态资源都可以访问
2、代码中进行配置
@Configuration
public class MyConfiguration extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/basedata/**").addResourceLocations("file:" + "."+ File.separator+"basedata"+File.separator);
}
}
addResourceHandler 这个方法是配置资源请求路径
addResourceLocations 这个方法是配置自定义静态资源存储位置,里边用到了file:,是因为资源放置位置不在classpath下边,是自定义的,也可以写为classpath:
效果展示:
项目结构:
访问结果展示:
推荐阅读
-
三、解决Spring MVC拦截器导致静态资源访问失败(基于java注解配置)
-
SpringBoot中的五种对静态资源的映射规则
-
springboot中jsp引用静态资源css,js的实现方法
-
linux服务器上使用nginx访问本地静态资源的方法
-
nodejs构建本地web测试服务器 如何解决访问静态资源问题
-
解决nginx/apache静态资源跨域访问问题详解
-
用Nodejs搭建服务器访问html、css、JS等静态资源文件
-
避免图片路径访问405,可以用图片控件来显示局部相对路径,不需要域名就不会出现jpg静态资源访问错误
-
web项目自定义路由_实现静态资源URL控制
-
SpringMvc静态资源访问实现方法代码实例