如果我需要添加一些東西來改善問題,請告訴我。使用HTML的Perl CGI ::模板
現在我是一個初學者perl和cgi web開發。我想使用HTML::Template
模塊,但不知怎的,我無法設置它正常工作。這裏是一個非常簡單的代碼,代表我測試的:
use strict;
use warnings;
use CGI;
use HTML::Template;
my $test = new CGI;
my $tmpl = HTML::Template->new(filename => 'TemplateSimple.html');
$tmpl->param(
title => 'Test',
body => '<p>This is a test</p>',
);
my $out = $test->header(-type => 'text/html',
-charset => 'utf-8');
print $out;
print $tmpl->output;
調用的頁面,我總是與瀏覽器最終顯示服務器錯誤消息時:
502 - Web服務器接收到一個無效的同時充當 網關或代理服務器。
我認爲這是非常基本的東西,我似乎不明白,但強烈的互聯網研究導致沒有成功。
我TemplateSimple.html文件看起來像這樣:
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<title><TMPL_VAR NAME=title></title>
<link rel="SHORTCUT" ICON href="favicon.ico" />
</head>
<body>
<TMPL_VAR NAME=body>
</body>
</html>
現在,事情是我必須使用CGI,因爲我要處理的網頁用戶輸入(我得到了一些這方面的工作實例,因此這裏不應該是問題),但是我想在模板中定義基本的html結構,我可以根據需要插入代碼段。
編輯:我認爲它可能有一些做與本地Perl之間的不同CONFIGS和Perl的CGI配置(從日食,這並運行正常運行)。有人知道這種情況嗎?
EDIT2:顯然在Eclipse中建立一個Perl CGI配置後,運行該腳本從本地主機的預期。但是,從外部源調用頁面時的問題仍然存在。就像DaveCross所說的那樣,這個錯誤在於web服務器配置,而不是Perl腳本。
有人可以幫我嗎?
寫入Web服務器錯誤日誌的內容是什麼?如果您從命令行(使用'perl -c')編譯程序,您會看到什麼?是否安裝了HTML :: Template?這是2017年,爲什麼這麼多人仍在編寫CGI程序? :-( –
呵呵,對不起,我工作的公司仍在使用它...我更喜歡更現代化的東西,我不知道服務器錯誤日誌在哪裏,但是當我在eclipse中運行perl腳本時,以下控制檯輸出:'Content-Type:text/html; charset = utf-8 HTML :: Template = HASH(0x5a2f74)'。當我使用print $ tmpl-> output'時,但在瀏覽器中我仍然收到錯誤消息。 –
@DaveCross因爲沒有人正在編寫關於如何部署PSGI內容的正確的全功能指南。我聽說你有一個奇特的博客...想要一些TUIT? :) – simbabque