http.templates

templates允许你向页面添加模板操作。模板可以方便地呈现当前时间戳、请求URL、访问者的IP地址等等。你还可以得到基本的控制语句,如ifrange。有关如何使用模板,请参阅模板操作

模板的一些常见用法包括包含其他文件的内容、显示当前日期或时间,以及根据请求路径、cookie或标题隐藏或显示页面的某些部分。

请注意,即使启用了此指令,自定义错误页面也不会作为模板执行。错误页面由独立的中间件提供。

模板可以来自静态文件,也可以由其他中间件加载。例如,您可以代理到一个后端,该后端输出一个模板,Caddy随后使用此指令执行该模板。

语法

templates [path [extensions...]]
  • path 调用模板之前要匹配的路径
  • extensions... 指定哪些文件后缀会被当成模板,用空格分开。

要指定某些后缀,必须提供一个路径。默认路径是/,被作为模板执行的默认扩展名是.html、.htm、.tpl、.tmpl和.txt。

更多选择,需要打开一个块:

templates {
    path    basepath
    ext     extensions...
    between open_delim close_delim
}
  • path 为要调用的模板匹配的基本路径。
  • ext 是作为模板执行的以空格分隔的文件后缀的列表。
  • between 为模板指定打开和关闭分隔符。默认值是{{}}

模板格式

查看模板操作

模板文件示例

<!DOCTYPE html>
<html>
    <head>
        <title>Example Templated File</title>
    </head>
    <body>
        {{.Include "/includes/header.html"}}
        <p>
            Welcome {{.IP}}! You're visiting {{.URI}}.
        </p>
        {{.Include "/includes/footer.html"}}
    </body>
</html>

示例

对所有的.html、.htm、.tpl、.tmpl、和.txt文件启用模板支持。

templates

文件后缀和上个例子一样,但是只针对/portfolio路径:

templates /portfolio

只对/portfolio路径的.html和.txt文件启用模板支持:

templates /portfolio .html .txt