Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Template toolkit 2 e css

    Ciao a tutti ragazzi, sono nuovo del forum e soprattuto di perl.
    Ho già creto alcuni siti in php utilizzando il template engine smarty e mi sono innamorato di questo modo di programmare.
    Andando in giro per il web ho scoperto che esiste un simil smarty per perl, ovvero Template toolkit 2, che ho scaricato, installato e configurato facilmente con i moduli CPAN.

    Adesso mi trovo di fronte ad un problema che non avrei mai immaginato di avere:

    Voglio solo inserire un foglio di stile css all' interno di una pagina index.tt2.
    Posto il mio codice che non si sà mai possa essere più utile delle mie parole:


    Ho creato una index.cgi (Nella cartella /usr/lib/cgi-bin) fatta così:

    use strict;
    use warnings;
    use Template;

    my $template= new Template();
    my $cgi= new CGI;

    print $cgi->header();
    $template->process('templates/index.tt2',{saluto=>'ciao'});

    Ed una index.tt2 (Nella cartella /usr/lib/cgi-bin/template) fatta così:

    <html>
    <head>
    <link rel="stylesheet" type="text/css" href="./style.css">
    </head>
    <body>
    <div class="saluto">[% saluto %]</div>

    </body>
    </html>
    Ovviamente style.css è all' interno della cartella templates e quindio nella stessa cartella di index.tt2.

    Ho provato a dargli anche il percorso assoluto ma niente da fare, non sò prorpio come fare, ho guardato un paio di guide e mi sembra di aver capito che bisogna usare ttre o tpage, ma non riesco comunque a farlo funzionare.

    Il ciao lo vedo, (la variabile gli arriva), ma lo stile niente di niente (è solo un background-color:red.

    Insomma è solo un css cosa mi sfugge???

    Grazie a tutti per l' aiuto preziosissimo!!!

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Sono convinto si tratti di un problema di path.
    Il problema e` che la pagina HTML generata al volo da Perl ha come path implicita (non so se sto usando i termini corretti) quella del sorgente perl, che di solito e` fuori dall'area accessibile dal Web. Quindi devi usare un path che puo` essere:
    - assoluto oppure
    - relativo alla tua home (dove e` settata secondo il webserver).

    Se pero` stai lavorando in locale (quindi non usi il Webserver per la visualizzazione), il path assoluto deve iniziare dal disco.
    Non e` facile tradurre in "path Web" il path assoluto locale; la cosa piu` semplice e` che tu scrivi nel campo location del browser:
    file:///c: (se sei sotto Win - non so se devi mettere tre o due slash)
    oppure
    file:/// (se sei sotto linux)

    e poi navighi fino a trovare il file CSS che ti interessa.
    A questo punto nella stringa location ti trovi il path assoluto che devi usare.

    Nota che poi se pubblichi la pagina, la cosa va ripetuta perche` il Webserver si comporta in modo diverso dal tuo disco locale
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Hai perfettamente ragione, infatti il problema è proprio del path!!
    Sono riuscito a fargli vedere il css inserendolo nella cartella /var/www, ma il comportamento è sbagliato, anche se riesce a vedere il css, mi spiego meglio.

    Il mio file index.cgi è nella cartella /usr/lib/cgi-bin, e quando viene eseguito mi richiama un altro file index.tt2 che al suo interno presenta la chiamata al foglio di stile .css presente in /var/www.

    Poichè però la configurazione di apache2 è fatta in modo tale che il cgi si possa eseguire solo dalla cartella cgi-bin, quando per esempio invio dati attraverso un form devo inserire perforza il path action="/cgi-bin/index.cgi" in questo modo cambia il path della pagina e di conseguenza non becca più il css.

    In parole povere secondo me è solo un problema di configurazione di apache!!
    Perchè mi vede il css, solo se inserito in /var/www/??
    Come posso cambiare la configurazione di apache per fare in modo che la document root sia /cgi-bin/ se c'entra qualcosa con il css ?

    Se riesco ad inserire il css nella directoty /cgi-bin/ed a farglielo vedere sono apposto!!! ma come devo configurarlo apache2?? (sono su una ubuntu)

    Grazie mille per l' aiuto!!

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Non me ne intendo di webserver, ma credo che puoi dire ad apache di aprire la cgi-bin.
    Pero` io non lo farei. Se la dir e` aperta, e` aperto anche il sw in essa contenuto, e un utente smaliziato potrebbe trovare la chiave per entrare nel tuo server e aver accesso ai tuoi dati. Tieni presente che (a quanto mi hanno detto) tutti i sistemi operativi hanno dei bachi che sono naturalmente noti ad hacker e cracker.

    Comunque il problema a questo punto e` di come e` configurato il webserver, mentre la programmazione Perl o CGI non c'entra.

    Io non posso spostare la discussione (non sono moderatore di questo forum).
    Prova a chiedere a shishii di spostarti, oppure fa' una domanda diversa nel forum webserver/apache (eventualmente puoi mettere un link a questa discussione).
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    Ok, garzie tante!

  6. #6

    RISOLTO

    Grazie per l' aiuto che mi hai dato, alla fine ho provato a modificare le impostazioni di apache ma non riuscivo a raggiungere il mio obiettivo in nessun modo (sicuramente colpa mia!) spulciando per la rete ho capito che per inserire un foglio di stile in una cgi con template toolkit 2 bisogna inserire la seguente direttiva:


    <style type="text/css">
    [% PROCESS "template/style.css" %]
    </style>


    dove ovviamente "template/style.css" è il percorso del foglio di stile.

    Spero che serva a qualcuno.

    Buonagiornata!

    p.s. mi scuso per aver scritto anche nel forum di apache ma nn capivo il problema!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.