【问题标题】:How to share Thymeleaf templates across domain如何跨域共享 Thymeleaf 模板
【发布时间】:2017-03-23 13:12:51
【问题描述】:

我正在使用 Spring Boot 1.4.1 和 spring-boot-starter-thymeleaf 依赖项开发一些 Spring 应用程序。我希望在我的网络服务器上共享我的 Thymeleaf 模板(例如页眉和页脚),以便能够将它们包含在我的应用程序中。实现这一点的最简单方法是在我的每个应用程序中包含指向我的模板的服务器根相对链接。这样,我的应用程序将是可移植的,我可以让它在我的所有环境(开发、测试、生产)上无缝运行。

在我看来,这似乎没什么大不了的,因为 Thymeleaf 已经考虑了服务器相关的 URL

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

但是我无法让它工作。我总是收到类似的错误

解析模板“/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 嵌入模板吗?

【问题讨论】:

    标签: spring spring-boot thymeleaf


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2017-04-16
      • 2011-05-07
      • 1970-01-01
      • 2012-10-05
      • 1970-01-01
      • 2018-05-04
      • 2011-02-26
      • 2013-01-12
      • 2011-11-27
      相关资源
      最近更新 更多