2016-11-09 67 views
0

我正在开发一些使用Spring Boot 1.4.1和spring-boot-starter-thymeleaf依赖关系的Spring应用程序。我希望在我的Web服务器上共享我的Thymeleaf模板(如页眉和页脚),以便能够将它们包含在我的应用程序中。最简单的方法是在每个应用程序中包含服务器根目录相关链接到我的模板。这样,我的应用程序便可以移植,并且可以在我的所有环境(开发,测试,产品)上无缝工作。如何跨域共享Thymeleaf模板

从我的角度来看,这似乎不是一个大问题,因为相对于服务器的URL都已经考虑到了Thymeleaf

<th:block th:replace="@{~/my/share/header}" /> 

但是我不能让它开始工作。我总是喜欢

错误解决模板“/我的/股/头”的错误,模板可能不存在或可能无法访问任何配置的模板解析器

我可以证实,我的模板是可用的,因为http://localhost/my/share/header.html正确响应(顺便说一句:我使用Apache httpd托管我的应用程序,所以我使用相同的端口)。

我也试着在URL的末尾添加“.html”或实现URLTemplateResolver(见下文),但不幸的是,似乎没有任何工作。

@Bean 
public ITemplateResolver templateResolver() { 
    UrlTemplateResolver templateResolver = new UrlTemplateResolver(); 
    templateResolver.setSuffix(".html"); 
    return templateResolver; 
} 

有人知道如何使用服务器根相对URL来嵌入模板吗?

回答

0

听起来好像在当前版本的Thymeleaf中无法实现这一点,就像您在此GitHub的帖子中看到的一样。我的解决方法是使用初始文章中描述的UrlTemplateResolver,并在我的Spring Boot项目(application.properties)中添加一个变量。这样,我可以根据我的部署环境管理不同的URL。