Spring Boot(十三)集成外部静态文件

1、如何使用外部静态文件?
需要再 application.yml 添加以下节点

server:
  port: 443
spring:
  resources:
    static-locations: file:D://uploadfile
  mvc:
    static-path-pattern: /**
  thymeleaf:
    prefix: classpath:/templates/

2、使用外部静态文件有什么用?
在本演示网站中,我仅仅用作上传目录,因为springboot中,我们不可能把用户上传的文件直接往springboot中上传,这样会让以后更新spring boot站点造成很大的麻烦,首先我们要解压原来的jar,再把文件拷贝到开发环境,然后再打包,而且当这些文件越来越多,我们的速度就会越来越慢。

3、使用外部静态文件还能做什么?
既然可以作为一个上传目录去使用,在发散思维的想想,我们是不是可以把外部静态目录作为一个完整的站点。这样只要springboot一只在跑,我们更新只需要更新D盘的所有文件,只要设计到位,就不用重启spring boot。甚至我们多人开发的时候,可以把外部静态目录作为一个共享文件夹,让所有前端把自己负责的模块文件都实时编译到这个共享文件夹,这样就不用每个前端开一个spring boot来调试,节约电脑性能。

4、注意的地方
我们新增了static-locations: file:D://uploadfile,访问路径即是从uploadfile下一层目录开始。比如 ://uploadfile/file/1.jpg,则访问路径就是 http://127.0.0.1/file/1.jpg
shiro 过滤拦截 则写出 filterChainDefinitionMap.put("/file/**", “anon”);
不需要把 uploadfile 这个路径考虑进去。

/*配置不会被拦截的链接 顺序判断*/
        /*anon:所有url都都可以匿名访问*/
        /*webjars swagger 加载到webjar的资源,所以webjar下的资源不能被拦截,否者无法访问*/
        filterChainDefinitionMap.put("/webjars/**", "anon");
        filterChainDefinitionMap.put("/swagger-ui.html", "anon");
        filterChainDefinitionMap.put("/swagger-resources/**", "anon");
        filterChainDefinitionMap.put("/v2/api-docs/**", "anon");
        filterChainDefinitionMap.put("/app/**", "anon");
        filterChainDefinitionMap.put("/static/**", "anon");
        filterChainDefinitionMap.put("/file/**", "anon");

综上,灵活运用也可以大大方便开发。

你可能感兴趣的:(Spring,Boot)