上一篇我们介绍了spring boot 是如何默认的访问静态资源的,这一片我们将学习如何自定义静态资源映射。
对于静态资源访问不懂的小伙伴可以看一下上一篇文章:https://blog.csdn.net/Lfanmujin/article/details/90296694
现在,我们要讨论,如果我想访问的资源不在这四个默认的文件下面怎么办?
是的,映射可以解决这个问题。
如果只想独立的访问一个静态资源文件,完全可以在application.yml(配置文件) 中进行配置,如同下面的格式
spring:
mvc:
static-path-pattern: /static/**
//static可以是其他的文件夹,这里点名一下
这样的话,我们可以访问一下
成功访问到了。
我的目录文件结构
截止到现在,配置静态便已经学习完成了。
下面是如何配置多个静态变量映射文件呢?
我们需要建一个config话不多说,上代码
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.Ordered;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class DefaultView implements WebMvcConfigurer {
@Value("${upload.video-path}")
private String videoPath;
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
registry.addResourceHandler("/video/**").addResourceLocations("file:"+videoPath);
LoggerFactory.getLogger(this.getClass().getName()).info("file:"+videoPath);
}
}
下面解释一下,在这里我配置了两个映射,第一个不多说,和上面的那个性质一样
第二个 registry.addResourceHandler("/video/**").addResourceLocations("file:"+videoPath);
这里我是将磁盘上面的一个文件夹映射为项目中的文件夹,这里面我有定义参数,为了后期好修改
@Value("${upload.video-path}") private String videoPath;
这个参数我是在yml文件中定义的,
到这里,基本上就结束了静态资源文件的配置。好好练习一下吧。