如何在Thymeleaf的Spring MVC中包含CSS文件?

时间:2017-03-24 13:11:55

标签: css spring-mvc thymeleaf

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

我的项目结构如下。

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?

2 个答案:

答案 0 :(得分:3)

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

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

这有用吗?

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

尝试:

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

答案 1 :(得分:0)

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

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

可以看到XML配置示例here