【问题标题】:How to include CSS file in Spring MVC with Thymeleaf?如何在带有 Thymeleaf 的 Spring MVC 中包含 CSS 文件?
【发布时间】:2017-08-17 10:41:03
【问题描述】:

我正在构建一个使用 Thymeleaf 作为模板语言的 Spring MVC 应用程序。我尝试了很多东西,但我无法将我的 CSS 文件包含在我的 Thymeleaf 模板中。我做错了什么?

我的项目结构如下。

project
    src/
        main/
            java/
            resources/
    web/
        WEB-INF/
            web.xml
            dispatcher-servlet.xml
            views/
                css/
                    bootstrap.min.css (and other css files)
                index.html

我的 index.html 如下所示。

<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="utf-8"/>
    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
    <meta name="viewport" content="width=device-width, initial-scale=1"/>
    <meta name="description" content=""/>
    <meta name="author" content=""/>
    <title>Hello Spring MVC</title>
    <link th:href="@{/css/bootstrap.min.css}" rel="stylesheet"/>
</head>
<body>
...
</body>
</html>

当我运行我的应用程序时,会显示 index.html,但找不到 css。

我需要如何包含 css?

【问题讨论】:

  • 您的代码看起来非常好。问题出在其他地方。您是否有任何 Spring Security 配置?例如。春季赛如果您不明确允许,将阻止对您的 CSS 的访问。或者如何显示您的配置类/XML。

标签: css spring-mvc thymeleaf


【解决方案1】:

您是否正确配置了资源处理程序? IE。

@Override
public void addResourceHandlers(final ResourceHandlerRegistry registry) {
    super.addResourceHandlers(registry);
    // ...
    registry.addResourceHandler("/css/**")
        .addResourceLocations("classpath:/views/css/");
    // ...
}

XML配置示例可见here

【讨论】:

    【解决方案2】:

    您是否尝试删除前导“/”?像这样:

    <link th:href="@{css/bootstrap.min.css}" rel="stylesheet"/>
    

    有效果吗?

    此外,许多 IDE 允许您拖放文件,从而创建指向该文件的链接。例如,在 Netbeans 中,您可以将文件从项目导航器拖到 HTML(或类似 HTML)打开的文件上,它将创建一个链接。

    试试:

    project
    src/
        main/
            java/
            resources/
                static/ 
                    bootstrap.css 
    

    【讨论】:

    • 我刚试过,不行。我也尝试使用拖放,但它会创建与上面相同的链接(css/bootstrap.min.css)。
    • 我查看了我的一个较旧的 Spring Boot 存储库,并将 CSS 放在资源/静态下。在主目录中。所以在 src/main/resources/static/my.css 看看你的模板能不能在那里找到。
    • 你有文件夹的映射吗?
    • 我没有专门映射任何东西。它是旧版本的 Boot,当时它只是在资源文件夹中查找面向 Web 的文件——现在可能不同了。
    猜你喜欢
    • 1970-01-01
    • 2014-11-17
    • 2012-01-24
    • 1970-01-01
    • 2015-05-26
    • 2011-12-18
    • 1970-01-01
    • 2014-12-04
    • 2015-06-16
    相关资源
    最近更新 更多