Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22
  1. #1

    Settare "cache expiration" alle immagini

    Salve a tutti,

    qualcuno saprebbe dirmi come posso specificare una "cache expiration" alle immagini (jpeg, png).

    Sto utilizzando il "Page Speed" tool integrato in firebug e, terminata l'esecuzione dell'analisi della mia pagina web, alla voce "Leverage browser caching", questo mi suggerisce:

    "The following resources are missing a cache expiration. Resources that do not specify an expiration may not be cached by browsers. Specify an expiration at least one month in the future for resources that should be cached, and an expiration in the past for resources that should not be cached"

    Ho letto diversi articoli che parlavano di modificare il file .htaccess, ma purtroppo non ho la possibilità di farlo. C'è un modo per farlo in php?

    Grazie :-)

  2. #2
    Mah così ad occhio ti basterebbe mettere il controllo della cache nella head html della pagina. Altri dicono di specificare il caching delle immagini in apache, ma mi pare un pò esagerata come cosa
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  3. #3
    Ciao,

    ho provato a mettere nella head
    <meta http-equiv="Expires" content="Mon, 29 Mar 2010 23:59:59 GMT" />

    ma sembra non funzionare.

    Cmq, grazie!

  4. #4
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Per forza non funziona, la pagina html non c'entra niente con le immagini. Sono file diversi.
    In effetti dovrebbe essere il server a impostare gli header alle immagini, è strano che non lo faccia. L'unico modo alternativo per farlo è quello di usare codice php per tutte le immagini del tuo sito, ma mi sembra di una pesantezza inaudita. Sei in hosting, suppongo (evita di nominarlo se no arriva il moderatore e ti sculaccia)

  5. #5
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Aggiornamento
    Non conoscevo questo Page Speed, sono andato a scaricarlo ed è molto interessante. Però quello che emerge è che le ottimizzazioni che suggerisce (ovvero i "difetti" che trova alle pagine) sono molto diffusi, anche su siti molto grossi (cioè con traffico elevato). Quindi tutto sommato potresti anche non preoccuparti di quel problema.
    Anche perché, se non puoi mettere le mani su un .htaccess, non hai molte possibilità. L'ipotesi di gestire gli header via php è decisamente da scartare

  6. #6
    Ok Luca,

    si sto usando un hosting e non ho la possibilità di accedere al .htaccess.
    Ho poche immagini e quindi ci terrei a modificare l'header via php, page speed mi dà un punteggio di 97/100 e vorrei arrivare a 100/100 (sembrerò una malata mentale, ma ci tengo molto).


    Sai dirmi quindi come fare?
    Grazie

  7. #7
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Devi eliminare tutti i riferimenti diretti alle immagini sulle pagine html, e sostituirli con dei riferimenti ad una pagina php alla quale dovrai passare come parametro il nome dell'immagine da visualizzare.
    All'interno del codice php, leggerai l'immagine, butterai fuori gli header che ti interessano, e poi fai l'echo dell'immagine

  8. #8

    Mia soluzione

    Grazie Luca,
    io ho fatto in questo modo (lo pubblico sperando possa essere utile anche ad altri) e funziona.
    Carino il Page Speed tool, vero?

    Buona giornata

    $fn = 'images/my_image.png'; // path
    $headers = getHeaders();
    header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($fn)).' GMT', true, 200);
    header('Content-Length: '.filesize($fn));
    $expires = 60*60*24*30; // 1 month
    header("Pragma: public");
    header("Cache-Control: public, maxage=".$expires);
    header('Expires: ' . gmdate('D, d M Y H:i:s', time()+$expires) . ' GMT');
    header('Content-Type: image/png');
    print file_get_contents($fn);

    function getHeaders() {
    $headers = array();
    foreach ($_SERVER as $k => $v){
    if (substr($k, 0, 5) == "HTTP_"){
    $k = str_replace('_', ' ', substr($k, 5));
    $k = str_replace(' ', '-', ucwords(strtolower($k)));
    $headers[$k] = $v;
    }
    }
    return $headers;
    }

  9. #9
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120

    Re: Mia soluzione

    Originariamente inviato da holicGirl
    Carino il Page Speed tool, vero?
    Sì carino, ma un po' estremo nelle indicazioni. Pretendere di seguirlo al 100% mi sembra un po' da... quello che hai detto tu
    (sempre che tu non abbia un sito da 10.000.000 di pagine al giorno )

  10. #10
    Sì, però come dice Google "you'll offer a great user-experience"; con questa ultima modifica fatta alle immagini sono riuscita a raggiungere 100/100 e ti assicuro che vedere la pagina caricarsi così in fretta è una gran bella sensazione...

    Saluti da una malata mentale

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 © 2025 vBulletin Solutions, Inc. All rights reserved.