springboot配置静态资源访问路径
spring framework jar包其实在springboot中静态资源的映射⽂件是在resources⽬录下的static⽂件夹,springboot推荐我们将静态资源放在static⽂件夹下,因为默认配置就是classpath:/static/但是之前我们都习惯将静态资源⽂件放在webapp下⾯,特别是打war包的项⽬,但是如果我们直接创建⼀个webapp⽂件⽬录,将静态资源放进去,在项⽬启动的时候我们是访问不到的,所以我们要进⾏⼀些项⽬配置。
改变springboot项⽬静态资源⽂件访问⽬录的⽅式有两种,⼀种是直接在配置⽂件中进⾏设置,另⼀种是我们编写⼀个配置类,继承
org.springframework.fig.annotation.WebMvcConfigurerAdapter或者
org.springframework.fig.annotation.WebMvcConfigurationSupport
并重写addResourceHandlers(ResourceHandlerRegistry registry)⽅法,其实addResourceHandlers(ResourceHandlerRegistry registry)⽅法就是个空⽅法。
第⼀种:在配置⽂件中进⾏配置
#静态资源访问路径
spring.mvc.static-path-pattern=/**
#静态资源映射路径
第⼆种:通过编程进⾏设置
@Configuration
public class MvcConfig extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
     // 这⾥之所以多了⼀"/",是为了解决打war时访问不到问题
registry.addResourceHandler("/**").addResourceLocations("/","classpath:/");
}
}
不过真的是不建议我们修改静态资源⽂件的访问⽬录为classpath:/,因为如果我们改了静态资源的访问⽬录为classpath:/,这会带来⼀个隐患,就是classpath下的所有⽂件都是可以被访问到的。其实我们直接使⽤springboot的默认设置的静态资源⽬录(classpath:/statc/)j就可以了,不管是打war包还是jar包都是可以被访问的,同时也会杀死别的⽬录下的⽂件被访问的机会。
但是有时候我们真的是需要访问别的路径,⽐如我之前做的⼀个项⽬,进⾏图⽚的上传,因为项⽬不是很⼤,所以没有⽤到⽂件服务器,直接就是本地保存的,如果直接保存在项⽬⽬录下这回带来⼀个很⼤的问题,项⽬代码重新发布的时候要把之前上传的图⽚拷贝出来,发布好后再放回去,这样很⿇烦,所以需要放到项⽬外⾯,这个时候不想改变静态资源访问⽬录都不想了,但是还是建议将静态资源放进static⽂件夹下,别的访问⽬录我们可以直接在后⾯追加,这样就很完美了。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。