解决SpringBoot不能直接访问templates下的静态资源

Spriongboot创建的项目,在resources -> templates下的资源是不能直接访问的,没有开放访问权限。这是因为templates文件夹,是放置模板文件的,因此需要视图解析器来解析它。所以必须通过服务器内部进行访问,也就是要走控制器 -> 服务 -> 视图解析器这个流程才行。同时,存在安全问题。比如说,你把你后台的html文件放到templates,而这个文件夹对外又是开放的,就会存在安全隐患。

这里提供两种可以方式访问templates模板下的资源文件
方式一:在application.yml或者application.properties配置文件中将访问权限开放(这种方式不推荐)

spring:
  resources:
    static-locations: classpath:/META-INF/resources/, classpath:/resources/, classpath:/static/, classpath:/public/, classpath:/templates/

或者

spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,classpath:/templates/

方式二:通过内部controller跳转访问的资源

比如要访问templates下的test.html。先请求内部控制器,由控制器跳转test.html页面

image.png
@Controller
public class Test {

    @GetMapping("/test")
    public String test() {
        return "test";
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,161评论 1 32
  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,475评论 0 9
  • 累了, 无处安放。
    拾荒笔社阅读 92评论 0 0
  • 文/黄梅枝 张承宇和禇俊峰边走边猜测,这个孙大柱不职守在自己的工作岗位上,跑到黄帅王义虎他们的区域里干什么来了? ...
    黄梅枝阅读 332评论 22 29
  • 每个孩子都是降落在人间的天使!而我有一大一小两个天使! 虽然这两个天使都很有个性: ...
    冰糖葫芦德妈阅读 219评论 0 2