加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Perl Dancer模板标题,页脚

发布时间:2020-12-15 23:21:07 所属栏目:大数据 来源:网络整理
导读:我正在学习Perl并使用Dancer作为Web框架. 我有两个视图(tt文件)应该共享相同的导航. 因此,开始学习如何管理导航和页脚模板会很棒. 我已经阅读了Template Toolkit的文档,并且我已经完成了以下操作: 我已将config.yml文件更改为: #template: "simple"templat
我正在学习Perl并使用Dancer作为Web框架.
我有两个视图(tt文件)应该共享相同的导航.
因此,开始学习如何管理导航和页脚模板会很棒.

我已经阅读了Template Toolkit的文档,并且我已经完成了以下操作:

我已将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.tt和menu.tt文件位于文件夹视图中.但它似乎并不那么容易! =(关于如何将代码从一个文件重用到另一个文件的任何建议,该文件位于同一目录中?

解决方法

这就是 layouts的用途.这个想法是所有页面共有的内容(例如页眉,页脚,导航栏)都在布局中,每个页面特有的内容都在名为 views的模板中.视图在其他框架中称为“部分”,因为它们只包含部分内容的页面.

如果使用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%>当您调用模板’view’时,section将被指定的视图替换; (在您的情况下,由于您使用的是模板工具包样式的分隔符,因此您需要将<%和%>更改为[%和%].)

例如,如果views / index.tt是:

<h1>Hello,World!</h1>

调用模板’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>

请注意,已经有一个页脚部分;你只需要为标题和导航栏添加元素.

如果这是新开发,你应该使用Dancer2而不是Dancer(幸运的是,布局和视图在两者中都是相同的).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读