springboot thymeleaf找不到静态文件

时间:2016-07-25 06:05:36

标签: spring-boot thymeleaf

我使用springboot + thymeleaf,它可以找到模板页面,但找不到静态(css或js)。

enter image description here

application.yml:

spring:
  application:
    name: exe-springboot
  thymeleaf:
    suffix: .html
  resources:
    static-locations: /static/**

和控制器:

@RequestMapping("/index")
public String index() {
    return "index";
}

的index.html

<!DOCTYPE html>
<html>
<head>
    <title>index</title>
    <link rel="stylesheet" href="../static/index.css"/>
</head>
<body>
<h2>test page</h2>
<span class="test-span">hello world with css</span>
</body>
</html>

index.css

.test-span{
    font-size: 20px;
    color: red;
}

和浏览器:http://localhost:8080/index hello world with css的除外颜色应该是红色,但不是。并且带有chrome的控制台显示404 http://localhost:8080/static/index.css

1 个答案:

答案 0 :(得分:0)

尝试访问静态目录中的资源,如下所示:

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

当你使用百里香时,不要忘记&#34; th:&#34;而且您不必编写所需资源的完整路径。 Spring正在查看静态目录,因此您可以像我的示例一样访问index.css。

另一个好的做法可能是将你的css,js,字体和图像放入静态目录中的不同文件夹中。例如,创建一个文件夹CSS并将index.css放入其中并在HTML中访问它,如:

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

编辑:

现在问题不在于从静态文件夹加载资源。正如您所看到的,您将获得状态代码200,这意味着index.css已加载到您的HTML中。

所以我建议您最好用以下内容替换您的标签:

<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:th="http://www.thymeleaf.org">