2014-01-09 71 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/" />