代理背后的Thymeleaf资源路线

时间:2014-01-09 18:30:15

标签: spring proxy thymeleaf

我有一个spring应用程序,在本地tomcat7中部署了thymeleaf模板,并通过apache代理服务于外部世界。基本网址是:

我遇到的问题是,如果我在一个模板中链接一个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'部分而不能通过代理访问。

是否有人知道如何解决这个问题并使应用程序在两种环境中都正常工作?

1 个答案:

答案 0 :(得分:0)

在您的Thymeleaf布局/模板上,我有这样的路径:

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

将静态文件夹放在类路径的根目录中,如果使用的是java配置(我更喜欢xml),则添加资源映射

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

或XML

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