在 Spring-Boot + thymeleaf 上的应用。要运行的第一个文件是 index.html,它位于静态文件夹中。所有其他模板都在模板文件夹中。我正在考虑让 index.html 成为网站的主页。但我正在尝试使用百里香插入一个标题片段,但没有任何效果,即 此片段不在此页面上。
<!DOCTYPE html>
<html lang="en" xmlns:th="http://thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Home page</title>
</head>
<body>
<div th:insert="navbar :: f-navbar"></div>
<p>Go: <a href="/setting">Настройки</a></p>
</body>
</html>
如果我进入设置页面,完全相同的片段会完美显示。我究竟做错了什么?
首先:
文件
index.html夹中的文件static未处理Thymeleaf。它只是一个静态文件。
为了将此文件作为模板处理,您必须有一个控制器来处理路径并在文件夹中
"/"呈现模板:index.htmltemplates或者您需要配置
MVCConfig, 以直接处理单个模板。这可以通过
addViewControllers在您的方法中添加一个方法(MVCConfig如果存在)来完成。在这种情况下,您只是告诉 Spring 可以处理哪些路径而无需任何特殊的自定义逻辑。
为此,Spring 具有
ViewController,它简单地接受指定的请求并将指定的渲染模板作为响应发送。该方法
addViewControllers将注册表作为参数。第二:
使用片段指定模板的完整路径。
例如:
就我而言,blocks.html文件位于该地址(当然,相对于项目根目录)
因此,必须在模板之后立即指定路径