Я хотел бы использовать модуль 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 — веб-сервер получил неверный ответ, выступая в качестве шлюза или прокси-сервера.
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 (запускается из eclipse, который работает нормально) и конфигурацией Perl CGI. Кто-нибудь знает о таком случае?
Редактировать
После настройки конфигурации Perl CGI в Eclipse сценарий запускается, как и ожидалось, на локальном хосте. Однако проблема при вызове страницы из внешнего источника сохраняется. Итак, как предположил DaveCross, ошибка кроется в конфигурации веб-сервера, а не в скрипте Perl.
perl -c
)? HTML::Template установлен? На дворе 2017 год, почему так много людей до сих пор пишут CGI-программы? :-( - person Dave Cross   schedule 22.03.2017Content-Type: text/html; charset=utf-8 HTML::Template=HASH(0x5a2f74)
. Когда я используюprint $tmpl->output
, вывод консоли выглядит так, как хотелось бы, но в браузере я все еще получаю сообщение об ошибке. - person N. Maks   schedule 22.03.2017->output
, но вы уже это заметили). Таким образом, проблема заключается в том, как ваша программа взаимодействует с вашим веб-сервером. И вы ничего не сказали нам о том, как это настраивается. Сказать, что я не знаю, где находится журнал ошибок сервера, не очень полезно. Вы не можете заниматься серьезной веб-разработкой без доступа к журналу ошибок. Уверен, там найдутся полезные подсказки. - person Dave Cross   schedule 22.03.2017