gpt4 book ai didi

Perl Dancer 模板页眉、页脚

转载 作者:行者123 更新时间:2023-12-04 17:45:16 26 4
gpt4 key购买 nike

我正在学习 Perl 并使用 Dancer 作为 Web 框架。
我有两个 View (tt 文件)应该共享相同的导航。
因此,最好开始学习如何管理导航和页脚的模板。

我已经阅读了模板工具包的文档,并完成了以下操作:

我已经更改了 config.yml文件到:

#template: "simple"

template: "template_toolkit"
engines:
template_toolkit:
start_tag: '[%'
end_tag: '%]'

我已经在 .pm 中定义了模板文件:
package proyecto;
use Dancer ':syntax';

our $VERSION = '0.1';

get '/' => sub {
template 'index';
};


get '/menu' => sub {
template 'menu';
};

true;

索引模板中有一个链接将访问者引导到菜单模板:
<li class="active">< a href="/menu">Menu <span class="sr-only"></span></a></li>

我想将 index.tt 中的导航代码重用到 menu.tt 中,因此我将导航代码包装在 index.tt 中,如下所示:
[% BLOCK navigation %]
#my nav code
[% END %]

为了最终将该代码包含在 menu.tt 文件中,我编写了以下内容(导航代码应在何处):
[% navigation = 'index.tt' %]
[% INCLUDE navigation %]

文件 index.ttmenu.tt位于文件夹 View 中。不过好像没那么容易! =( 关于如何将代码从一个文件重用到位于同一目录中的另一个文件的任何建议?

最佳答案

这是什么layouts是给。这个想法是所有页面共有的内容(例如页眉、页脚、导航栏)进入布局,特定于每个页面的内容进入名为 views 的模板中。 . View 在其他框架中被称为“部分”,因为它们只包含页面的一部分内容。

如果您使用 dancer用于设置应用程序的命令行实用程序,默认布局为 views/layouts/main.tt看起来像这样:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=<% settings.charset %>" />
<title>Foo</title>
<link rel="stylesheet" href="<% request.uri_base %>/css/style.css" />
</head>
<body>
<% content %>
<div id="footer">
Powered by <a href="http://perldancer.org/">Dancer</a> <% dancer_version %>
</div>
</body>
</html>
<% content %>当您调用 template 'view'; 时,部分被替换为指定的 View . (在您的情况下,您需要将 <%%> 更改为 [%%],因为您使用的是模板工具包样式的分隔符。)

例如,如果 views/index.tt是:
<h1>Hello, World!</h1>

调用 template 'index';在路由中呈现以下内容:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<title>Foo</title>
<link rel="stylesheet" href="http://www.example.com/css/style.css" />
</head>
<body>
<h1>Hello, World!</h1>
<div id="footer">
Powered by <a href="http://perldancer.org/">Dancer</a> 1.3202
</div>
</body>
</html>

请注意,已经有一个页 footer 分;您只需要为标题和导航栏添加元素。

如果这是新开发,你真的应该使用 Dancer2而不是 Dancer(幸运的是,两者的布局和 View 是相同的)。

关于Perl Dancer 模板页眉、页脚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37008384/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com