Thymeleaf + Spring Boot:将html放在子文件夹中

sva605

默认情况下,Thymeleaf需要所有HTML文件都存在于scr / main / java / resources / templates中。为了不在模板文件夹中创建混乱,我需要在此处创建不同的子滑块。问题是放置在那里的html文件永远都不会得到解决。示例如下。

结构体:

项目结构

IndexController:

@Controller
public class IndexController {
    @GetMapping(value = "/")
    public String index() {
        return "index";
    }
}

默认模板:

<!DOCTYPE html>
<html lang="en"
      xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout">
<head>
    <meta charset="UTF-8"/>
    <title>Default template</title>
</head>
<body>

<section id="site-content" layout:fragment="content"></section>

</body>
</html>

指数:

<!DOCTYPE html>
<html lang="en"
      xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
      layout:decorator="default">
<head>
    <meta charset="UTF-8"/>
    <title>Index</title>
</head>
<body>

<div layout:fragment="content">
    <div>
        This is index page
    </div>

    <a href="subfolder/page.html">Page</a>
</div>

</body>
</html>

子文件夹中的页面:

<!DOCTYPE html>
<html lang="en"
      xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
      layout:decorator="default">
<head>
    <meta charset="UTF-8">
    <title>Page</title>
</head>
<body>

<div layout:fragment="content">
    This is a page in the subfolder
</div>

</body>
</html>

当我打开索引页面并单击指向page.html的链接时,得到以下信息:

错误

我做错了什么?

N4zroth

您没有/subfolder/page.html的控制器映射,这不是Thymeleaf和Spring的工作方式。

您不能轻易地引用纯HTML文件,因为它们在技术上并未存储在其中。您必须引用在Spring中定义的端点,然后将选择要呈现的HTML文件,如下所示:

@Controller
public class IndexController {
    @GetMapping(value = "/subfolder/page")
    public String index() {
        return "subfolder/page";
    }
}

并按以下方式创建链接:

<a href="subfolder/page">Page</a>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章