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,页面可以直接加载该静态资源。
这样就能加载磁盘上的静态资源了。
5、访问项目内的静态资源,不是springboot默认的文件夹时需要以下配置
访问的时候需要在路径前面加上在addResourceHandler中配置的前缀。
访问路径为localhost:18888/aa/aa.jpg