springboot配置静态资源访问路径

其实在springboot中静态资源的映射文件是在resources目录下的static文件夹,springboot推荐咱们将静态资源放在static文件夹下,由于默认配置就是classpath:/static/可是以前咱们都习惯将静态资源文件放在webapp下面,特别是打war包的项目,可是若是咱们直接建立一个webapp文件目录,将静态资源放进去,在项目启动的时候咱们是访问不到的,因此咱们要进行一些项目配置。web

改变springboot项目静态资源文件访问目录的方式有两种,一种是直接在配置文件中进行设置,另外一种是咱们编写一个配置类,继承org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter或者org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupportspring

并重写addResourceHandlers(ResourceHandlerRegistry registry)方法,其实addResourceHandlers(ResourceHandlerRegistry registry)方法就是个空方法。编程

第一种:在配置文件中进行配置springboot

#静态资源访问路径
spring.mvc.static-path-pattern=/**
#静态资源映射路径
spring.resources.static-locations=classpath:/

第二种:经过编程进行设置服务器

@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包都是能够被访问的,同时也会杀死别的目录下的文件被访问的机会。mvc

可是有时候咱们真的是须要访问别的路径,好比我以前作的一个项目,进行图片的上传,由于项目不是很大,因此没有用到文件服务器,直接就是本地保存的,若是直接保存在项目目录下这回带来一个很大的问题,项目代码从新发布的时候要把以前上传的图片拷贝出来,发布好后再放回去,这样很麻烦,因此须要放到项目外面,这个时候不想改变静态资源访问目录都不想了,可是仍是建议将静态资源放进static文件夹下,别的访问目录咱们能够直接在后面追加,这样就很完美了。app

相关文章
相关标签/搜索