2014-01-09 109 views
1

我有一個在本地tomcat7中部署了thymeleaf模板的spring應用程序,並通過apache代理服務於外部世界。基礎網址是:代理服務器後面的Thymeleaf資源路由

我有問題是,如果我在一個模板鏈接一個CSS文件,如:

<!-- Bootstrap core CSS --> 
<link href="../../../resources/vendor/bootstrap/css/bootstrap.css" 
    th:href="@{/resources/vendor/bootstrap/css/bootstrap.css}" 
    rel="stylesheet" /> 

生成的代碼如下所示:

<!-- Bootstrap core CSS --> 
<link href="/my-application/resources/vendor/bootstrap/css/bootstrap.css" rel="stylesheet" /> 

因此,它通過localhost:8080(tomcat)訪問時有效,但由於生成的'/ my-application'部分而不通過代理。

有沒有人知道如何解決這個問題,並使應用程序在兩種環境中都能正常工作?

+0

你可以發佈一個回答這個問題? – Denis

回答

0

在您Thymeleaf佈局/模板,我有這樣的路徑:

<link rel="stylesheet" type="text/css" href="/static/css/bootstrap.css" h:href="@{/static/css/bootstrap.css}" /> 

讓你的靜態文件夾在你的classpath的根目錄,如果你使用的是Java的配置(我更喜歡加資源映射XML)

@Override 
public void addResourceHandlers(ResourceHandlerRegistry registry) { 
    registry.addResourceHandler("/static/**").addResourceLocations("/static/"); 
} 

或XML

<mvc:resources mapping="/static/**" location="/static/" />