springboot加载项目内外静态资源

1、pom中加入springboot访问静态资源的jar包

springboot默认项目静态资源的位置是项目下的 /static、/public、/META-INF/resources、/resources这几个目录

当项目整合freemarker时,模板必须放到src/main/resources/templates目录下。模板扩展名必须为ftl。

2、需要继承WebMvcConfigurerAdapter重写addResourceHandlers方法,并将该类打上@Configuration注解

@Configuration
public class ApplicationConfig  extends WebMvcConfigurerAdapter{

    @Value("${static.wavpath}")
    private String filepath;
    
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/staticwav/**").addResourceLocations("file:///F:noms/static/wav/");
        super.addResourceHandlers(registry);
    }
}

 

这里需要注意的是:有的file:///F: 这里是三条线,我看其他博客都是两条线。文件夹后还有/

3、springboot加载类需要导入配置类

@SpringBootApplication
@Import(ApplicationConfig.class)
public class Application{

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

4、F:noms/static/wav/文件夹里的返回方式

该图片在磁盘上的位置是F:noms/static/wav/bbb.jpg  返回给页面的路径为staticwav/bbb.jpg。配置类中将F:noms/static/wav/下的资源映射到staticwav/下,所以直接返回staticwav/bbb.jpg,页面可以直接加载该静态资源。

springboot加载项目内外静态资源_第1张图片

springboot加载项目内外静态资源_第2张图片

springboot加载项目内外静态资源_第3张图片 这样就能加载磁盘上的静态资源了。

5、访问项目内的静态资源,不是springboot默认的文件夹时需要以下配置

springboot加载项目内外静态资源_第4张图片

访问的时候需要在路径前面加上在addResourceHandler中配置的前缀。

springboot加载项目内外静态资源_第5张图片

 访问路径为localhost:18888/aa/aa.jpg

springboot加载项目内外静态资源_第6张图片

你可能感兴趣的:(springboot)