2016-11-09 65 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。