2016-11-09 3 views
0

Ich entwickle einige Spring-Anwendungen mit Spring Boot 1.4.1 und Spring-Boot-Starter-Thymeleaf-Abhängigkeit. Ich möchte meine Thymeleaf Templates (wie Kopf- und Fußzeilen) auf meinem Webserver teilen, um sie in meine Anwendungen einbinden zu können. Der einfachste Weg, dies zu erreichen, wäre es, den Server-Root-Link zu meinen Vorlagen in jeder meiner Apps hinzuzufügen. Auf diese Weise sind meine Apps portabel und ich kann sie nahtlos in allen meinen Umgebungen (Entwicklung, Test, Produktion) einsetzen.So teilen Sie Thymeleaf Vorlagen über Domäne

Aus meiner Sicht scheint dies kein großes Problem zu sein, da die serverbezogene URLs bereits berücksichtigt, indem Thymeleaf genommen werden

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

aber ich kann es nicht bekommen zu arbeiten. Ich bekomme immer einen Fehler wie

Fehler beim Auflösen template „/ my/share/header“, Vorlage nicht existieren könnte oder nicht durch eine der konfigurierten Vorlage Auflöser

Ich kann zugänglich sein bestätigen, dass Meine Vorlage ist verfügbar, weil http://localhost/my/share/header.html korrekt reagiert (übrigens: Ich verwende Apache httpd, um meine Apps zu hosten, damit ich denselben Port verwende).

Ich habe auch versucht, ".html" am Ende der URL hinzuzufügen oder den URLTemplateResolver (siehe unten) zu implementieren, aber leider scheint nichts zu funktionieren.

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

Wissen Sie, wie Sie Vorlagen mithilfe der relativen Root-URLs einbetten können?

Antwort

0

Es klingt wie es gibt keine Möglichkeit, dies in der aktuellen Version von Thymeleaf zu erreichen, wie Sie in diesem GitHub Beitrag sehen können. Meine Problemumgehung besteht darin, den UrlTemplateResolver wie im ursprünglichen Post beschrieben zu verwenden und eine Variable in meinem Spring Boot-Projekt (application.properties) hinzuzufügen. Auf diese Weise kann ich abhängig von meinen Bereitstellungsumgebungen unterschiedliche URLs verwalten.

Verwandte Themen