众所周知,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:
"/pic") (publicStringShowPic() { return"/qiqi.png"; }
访问127.0.0.1:8080/pic
即可访问到这个图片静态资源。
但是加入thymeleaf之后,你会发现这样就不行了,因为加入thymeleaf依赖之后,Spring Boot就会去Thymeleaf模板目录下寻找资源,并自动加上尾缀,而不是像以前一样去static文件夹下寻找资源。
其实要想在使用thymeleaf之后还像原来一样访问静态资源,只需重定向即可:
"/pic") (publicStringShowPic() { return"redirect:/qiqi.png"; }
可见return的静态资源地址前加上redirect:
即可。