在Spring Boot中配置Thymeleaf的模板路径

3,629 阅读1分钟

众所周知,Thymeleaf的模板文件默认是在项目文件夹/src/main/resources/templates目录下的。不过出于特殊需要,要修改其路径怎么办呢?

1,Thymeleaf配置

在我们的项目配置文件application.properties中,添加如下配置:

# Thymeleaf配置
spring.thymeleaf.prefix=自定义的Thymeleaf的模板位置,jar内部以classpath:开头,外部路径使用file:开头
spring.thymeleaf.suffix=自动匹配后缀
spring.thymeleaf.cache=是否使用缓存

知道了以上配置的作用,我们就知道了,默认情况下Thymeleaf的spring.thymeleaf.prefix这条配置的值是classpath:/templates/(Spring Boot中classpath的根目录即对应项目文件夹/src/main/resources

这里放出我的配置:

# Thymeleaf配置
spring.thymeleaf.prefix=file:Resources/thymeleaf/
spring.thymeleaf.suffix=.html
spring.thymeleaf.cache=false

即把模板路径设置为当前目录下(指项目根目录或者编译后运行jar时的运行目录)的Resources/thymeleaf下。

需要注意的是模板路径值最后一定要加上斜杠/,否则就会出错。

2,配置Thymeleaf依赖后访问静态资源问题

我们知道Spring Boot静态资源平时都是放在项目文件夹/src/main/resources/static下的,例如在工程文件夹下src/main/resources/static下放入图片qiqi.png,并编写controller:

@GetMapping("/pic")
public String ShowPic() {
   return "/qiqi.png";
}

访问127.0.0.1:8080/pic即可访问到这个图片静态资源。

但是加入thymeleaf之后,你会发现这样就不行了,因为加入thymeleaf依赖之后,Spring Boot就会去Thymeleaf模板目录下寻找资源,并自动加上尾缀,而不是像以前一样去static文件夹下寻找资源

其实要想在使用thymeleaf之后还像原来一样访问静态资源,只需重定向即可:

@GetMapping("/pic")
public String ShowPic() {
   return "redirect:/qiqi.png";
}

可见return的静态资源地址前加上redirect:即可。