【问题标题】:Thymeleaf resource routes behind proxy代理后面的 Thymeleaf 资源路由
【发布时间】:2014-01-09 18:30:15
【问题描述】:

我有一个带有 thymeleaf 模板的 spring 应用程序部署在本地 tomcat7 中,并通过 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”部分,因此不能通过代理访问。

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

【问题讨论】:

  • 你能回答这个问题吗?

标签: spring proxy thymeleaf


【解决方案1】:

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

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

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

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

或在 XML 中

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

【讨论】:

    猜你喜欢
    • 2021-09-10
    • 2015-07-06
    • 1970-01-01
    • 2013-01-31
    • 2015-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-09
    相关资源
    最近更新 更多