【问题标题】:Thymeleaf + Spring Boot: placing html in subfoldersThymeleaf + Spring Boot:将html放在子文件夹中
【发布时间】:2017-11-04 17:42:19
【问题描述】:

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

结构:

索引控制器:

@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 的链接时,我得到了这个:

我做错了什么?

【问题讨论】:

    标签: html spring-boot thymeleaf


    【解决方案1】:

    您没有 /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>
    

    【讨论】:

    • 谢谢,'返回“子文件夹/页面”'有帮助。我习惯了 jsp,我不必在返回类中指定文件夹名称,只需查看名称。 Thymeleaf 是一个有点不同的故事。
    猜你喜欢
    • 2017-07-23
    • 2017-06-26
    • 2014-11-21
    • 2017-06-14
    • 2017-08-03
    • 2015-06-11
    • 2017-02-25
    • 1970-01-01
    • 2017-01-14
    相关资源
    最近更新 更多