Forum Webscript.Ru

Программирование => Perl => Тема начата: от 28 Февраля 2002, 17:27:04

Название: Проблема с CGI::FastTemplate
Отправлено: от 28 Февраля 2002, 17:27:04
У меня есть простенький шаблон всего с одной переменной, использую
списки стилей через link rel="stylesheet" href="style.css" при этом страница грузиться не хочет. Апач ничего не пишет. Если описывать стиль прямо в шаблоне то все ОК, выводит как надо. Можно конечно слепить шаблон со стилями и вставлять в каждую страницу где нужно, но все-таки хочется сделать по человечески.
Может кто знает?
Название: Проблема с CGI::FastTemplate
Отправлено: ЖеньКа от 01 Марта 2002, 11:15:44
а попробуй



Мало ли
Название: Проблема с CGI::FastTemplate
Отправлено: от 02 Марта 2002, 13:45:31
Ничего к сожалению не помогает. Может автор перевода статьи по этому модулю Green Kakadu знает?
Название: Проблема с CGI::FastTemplate
Отправлено: Green Kakadu от 05 Марта 2002, 14:03:21
Цитировать
Ничего к сожалению не помогает. Может автор перевода статьи по этому модулю Green Kakadu знает?

наверное вы где то ошиблись - модулю все равно что вставлять куда вставлять, главное чтоб было указано откуда и куда - проверьте шаблоны/программу

кстати, если нужно заменить лишь всего одну переменную, то ИМХО неразумно использовать модуль, можно сделать проще:

$value=\'значение\';
$templ~=s/<%template_var%>/$value/g;
#g- если возможно несколько однотипных вставок
Название: Проблема с CGI::FastTemplate
Отправлено: от 08 Марта 2002, 14:25:37
По поводу всего одной переменной скажу, что специально максимально упростил шаблон и программу, чтобы локализовать ошибку. Которую все равно найти не могу, ниже привожу текст скрипта и шаблона, буду ОЧЕНЬ БЛАГОДАРЕН если кто-нибудь ткнет носом в ошибку.

(у меня localhost на Apache под Win98)

===шаблон index.tpl в z:\\templates===

 
 $TITLE
 
 
 
 

===скрипт===
#!/usr/local/bin/perl
use CGI::FastTemplate;
$tpl = new CGI::FastTemplate();

print("Content-Type: text/html\\n\\n");

$tpl->set_root("z:/templates");

$tpl->define(main => "index.tpl" );

$tpl->assign(TITLE => "Title");

$tpl->parse(CONTENT => "main");

$tpl->print();
Название: все правильно
Отправлено: Green Kakadu от 09 Марта 2002, 23:57:39
у вас все правильно. возможно только надо использовать не
use CGI::FastTemplate;
а require "FastTemplate.pm";
Т.е. если модуль инсталлирован, то   use, а если нет, то require + путь к нему.
А так все нормально, у меня работает (я его маленько ихменил, но суть та же):

#!/usr/bin/perl -w
require "FastTemplate.pm";
my $tpl = new CGI::FastTemplate();

print("Content-Type: text/html\\n\\n");

$tpl->define(main => "index.pl" );
$tpl->assign(TITLE => "Title");
$tpl->parse(CONTENT => "main");
$tpl->print();
#Лучше все же использовать $tpl->print(\'CONTENT\');
# ну а можно и иначе:
#my $content=$tpl->fetch(\'CONTENT\');
#print $$content;
Название: Проблема с CGI::FastTemplate
Отправлено: от 12 Марта 2002, 15:01:28
Спасибо за ответ но ничего из предложенного по-началу не помогало. Потом я решил взглянуть как собрана гл. страница этого сайта(то бишь WebScript.ru). Там я обнаружил вот что :
Недолго думая я ставлю слэш перед style.css и ВСЁ РАБОТАЕТ! Надо сказать не очень понятно почему работает, но это и неважно. Думаю это скорее проблема с настройкой моего Апача.

Thanx всем за помощь!
Название: Проблема с CGI::FastTemplate
Отправлено: NAS от 12 Марта 2002, 15:44:30
Цитировать
href="style.css">


Вот так браузер ищет style.css в текущей директории

Цитировать
href="/style.css">


А вот так в корне сайта.