Schrift
[thread]11567[/thread]

HTC-Snob-Fragen (Seite 2)



<< |< 1 2 >| >> 15 Einträge, 2 Seiten
Froschpopo
 2008-04-05 03:17
#107894 #107894
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
Irgendwie komme ich nicht weiter.
In der Applikation heisst es nun:
Code: (dl )
1
2
3
4
5
6
my $htc = HTML::Template::Compiled->new(
filename => 'home.html',
file_cache => 1,
file_cache_dir => '/var/htc_cache',
path => '/srv/www/tuxen/templates'
);

Im Verzeichnis /srv/www/tuxen/templates liegt also home.html und alle Dateien, die included werden. Also alles was irgendwie HTML enthält.

Die startup.pl:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
use warnings;
use strict;
use HTML::Template::Compiled;
use File::Find;

print STDERR "Pre-loading HTML Templates...\n";

my $cache_dir = '/var/htc_cache';
my $count_templates = HTML::Template::Compiled->preload($cache_dir);

print STDERR "$count_templates successfull loaded\n";

1;

Die Templates erscheinen wie geplant im /var/htc_cache-Verzeichnis.
Die startup.pl kennt auch den Pfad zum Cache-Verzeichnis.

In der error_log heisst es ja, dass er die footer.html nicht findet.
Diese Datei in home.html folgendermaßen einbezogen:
Code: (dl )
<TMPL_INCLUDE NAME=footer.html>

was auch bisher immer funktioniert hat.
pq
 2008-04-05 03:41
#107896 #107896
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
bei mir klappt das so.
hast du die kompilierten templates mal gelöscht?
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Froschpopo
 2008-04-05 03:46
#107897 #107897
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
tatsächlich! Ich musste das cache-Verzeichnis erst löschen.
Wenn ich das ganze System richtig verstehe, wird ein HTML-File erst neu in den Cache-Ordner gespeichert, wenn sie modifziert wurde. Das war ja bei mir nicht der Fall.
Prüft ihr das eigentlich mit einer md5 Prüfsumme oder wie macht ihr das?
Ist das nicht performancebeeinträchtigend wenn man das jedesmal machen muss?
Ich meine, zu hauptzeiten finden bei mir 3 Apllikation-Requests/Sekunde statt.
Gast Gast
 2008-04-05 04:44
#107898 #107898
Es wird geprüft, ob die modification time sich geändert hat oder eine bestimmte Zeit swit dem letzten Zugriff vergangen ist.
pq
 2008-04-05 14:15
#107906 #107906
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
Froschpopo+2008-04-05 01:46:51--
tatsächlich! Ich musste das cache-Verzeichnis erst löschen.
Wenn ich das ganze System richtig verstehe, wird ein HTML-File erst neu in den Cache-Ordner gespeichert, wenn sie modifziert wurde. Das war ja bei mir nicht der Fall.

genau, normalerweise wird nur bei änderung des templates neu kompiliert, aber nicht,
wenn du veränderte optionen im code hast.
Quote
Prüft ihr das eigentlich mit einer md5 Prüfsumme oder wie macht ihr das?
Ist das nicht performancebeeinträchtigend wenn man das jedesmal machen muss?
Ich meine, zu hauptzeiten finden bei mir 3 Apllikation-Requests/Sekunde statt.

ich prüfe das mit dem abgleich des zeitstempels, und nein, das kostet deshalb keine
performance, weil ich das nicht bei jedem aufruf mache.
ein interner hash speichert die letzte prüfzeit pro template und prüft dann erst wieder
nach x sekunden den zeitstempel der datei. x kannst du mit der klassenmethode
ExpireTime beeinflussen. default ist 10 minuten, eigentlich schon weitaus mehr als nötig.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
<< |< 1 2 >| >> 15 Einträge, 2 Seiten



View all threads created 2008-04-03 11:42.