[转][转]springbooot2 thymeleaf 配置以及加载资源文件。
这个问题我们都很好明白,就是模板页不存在,但是实际上它能找到模板页,但是在使用th:include标签的时候才会出错,这就是问题的症结所在。
其实这个问题也很好解决,我们只需要在引用模板文件的时候不用”/”打头就可以了,通过类似相对路径的方式来引用,但是需要说明的是,这里的相对路径仍然是相对于模板根目录来做的。
/** * 不能以“/”开头,解决springboot部署之后找不到thymeleaf模版文件所在的位置。 * @param paths * @return */ private String combineViewPath(String... paths) { final String DirectorySeparatorCharJar = "/"; String path = null; int length = paths.length; List<String> pathList = new ArrayList<>(length); for (int i = 0; i < length; i++) { path = paths[i]; int lastIndex = path.lastIndexOf(DirectorySeparatorCharJar); if (lastIndex == path.length() - 1) { path = path.substring(0, lastIndex); } if (0 == path.indexOf(DirectorySeparatorCharJar)) { path = path.substring(1); } pathList.add(path); } return StringUtils.join(pathList.toArray(), DirectorySeparatorCharJar); }
springbooot2 thymeleaf 配置以及加载资源文件。Cannot find template location: classpath:/templates/ (please add some templates or check your Thymeleaf configuration)
下面的方案:(IDEA里面加上就不能访问静态资源了)
在pom.xml中引入如下配置
<build> <finalName>lightstar</finalName> <resources> <resource> <!--加载资源目录--> <directory>src/main/resources</directory> <includes> <!--加载配置文件--> <include>**/*.xml</include> <include>**/*.properties</include> <!--加载模板文件--> <include>**/*.html</include> <!--加载静态文件--> <include>/static/</include> </includes> </resource> </resources> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>