代码之家  ›  专栏  ›  技术社区  ›  adhanlon

包括HTML中的Perl CGI脚本

  •  1
  • adhanlon  · 技术社区  · 15 年前

    我想写一个页眉和页脚Perl脚本,它将返回我个人网页的页眉和页脚。我假设我会在HTML文件的显示部分包含该文件。我应该这样做吗?如果是,我该怎么做?如果有人对更好的方法有其他建议的话,我会非常感兴趣的。谢谢。

    3 回复  |  直到 15 年前
        1
  •  3
  •   mob    15 年前

    如果您的服务器支持它,请签出 server side includes . 它们不一定要用Perl编写。

    如果没有,并且您的页眉和页脚很简单,那么可以考虑用JavaScript编写它们。在HTML代码中包含一个javascript脚本很容易 document.write 打电话,你就完了。

    如果不是,你的页眉和页脚也不简单,如果你不懂javascript,如果你可能是个受虐狂,还是考虑使用javascript。

    可能还有其他一些新的技术可以实现这一点,这里年轻的Whippersnapper可以告诉您,但对我来说,服务器端的includes和javascript并没有崩溃。

        2
  •  3
  •   Brian Rasmussen    15 年前

    看一看 Template Toolkit . 它允许您插入服务器端代码,这是在返回页面之前评估的,因此您可以通过这种方式轻松地向页面添加页眉/页脚代码。该工具包易于使用,其他功能可以在Perl中实现。

        3
  •  0
  •   Alan Haggai Alavi    15 年前

    子类 CGI.pm 并添加自定义方法。例如:

    PM

    package MyCGI;
    
    use warnings;
    use strict;
    use base qw( CGI );
    
    sub page_header {
        my $self = shift;
        return $self->div( { 'id' => 'header' },
            $self->h1('Welcome to my home page') );
    }
    
    sub page_footer {
        my $self = shift;
        return $self->div( { 'id' => 'footer' },
            $self->tt('Copyright © 2010. All rights reserved.') );
    }
    
    sub content {
        my ( $self, $paragraph ) = @_;
        return $self->div( { 'id' => 'content' }, $self->p($paragraph) );
    }
    
    1;
    

    #!/usr/bin/env perl
    
    use warnings;
    use strict;
    use MyCGI;
    
    my $page = MyCGI->new();
    print
        $page->header(),
        $page->start_html('My home page'),
        $page->page_header(),
        $page->content('My own content'),
        $page->page_footer(),
        $page->end_html();
    

    然后,你可以 use MyCGI 无论何时需要自定义/子类方法。