Go Back

Come abilitare la memorizzazione nella cache del browser

Per informazione, le impostazioni del server di caching (nel browser del client) massimizzano la memorizzazione nella cache, il che non significa che i browser non lo facciano in modo nativo: infatti, lo fanno già in una certa percentuale, quindi a volte bisogna ignorare quello che dicono i siti di test. Ciò è facilmente dimostrabile da 'Ispeziona elementi' quindi 'rete', vedrai 'cache del disco', 'cache di memoria'

I nostri server utilizzano il server Apache per impostazione predefinita, con Nginx in alto in modalità trasparente: PROXY

In questo caso, è attraverso il file htaccess che è possibile memorizzare nella cache i dati scaricati dal visitatore nel suo browser, è una tecnica di caching che prevale su tutte le altre possibili...

In effetti, lo abbiamo abilitato per impostazione predefinita a livello di server apache in questo modo universale:

<IfModule mod_expires.c>
Scade attivo il
ExpiresByType image/gif "accesso più 1 settimana
ExpiresByType image/jpeg "accesso più 1 settimana
ExpiresByType image/jpg "accesso più 1 settimana
ExpiresByType image/png "accesso più 1 settimana
ExpiresByType text/css "accesso più 1 settimana
ExpiresByType text/html "modifica più di 1 settimana"
ExpiresByType text/xml "modifica più di 2 ore"
ExpiresByType text/javascript "accesso più 1 settimana
ExpiresByType applicazione/javascript "accesso più 1 settimana
ExpiresByType application/x-javascript "accesso più 1 settimana
ExpiresByType image/x-icon "accesso più 1 settimana
ExpiresByType application/x-shockwave-flash "cambiamento più 1 settimana"
ExpiresByType image/svg+xml "accesso più 1 settimana
ExpiresByType image/vnd.microsoft.icon "accesso più 1 settimana
ExpiresByType application/font-woff "accesso più 1 settimana
ExpiresByType application/x-font-woff "accesso più 1 settimana
ExpiresByType application/vnd.ms-fontobject "accesso più 1 settimana
ExpiresByType font/opentype "accesso più 1 settimana
ExpiresByType font/ttf "accesso più 1 settimana
ExpiresByType font/otf "accesso più 1 settimana
ExpiresByType application/x-font-ttf "accesso più 1 settimana
ExpiresByType application/x-font-otf "accesso più 1 settimana
</IfModule>

<IfModule mod_headers.c>
<FilesMatch "\\.(ico|jpeg|jpg|svg|png|gif|css|gz|swf|eot|woff|otf|ttf)$">
Header set Cache-Control "max-age=604800, public"
</FilesMatch>
<FilesMatch "\\.(js)$">
Header set Cache-Control "max-age=604800, private"
</FilesMatch>
<FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi|htm|html)$">
Intestazione non impostata Cache-Control
</FilesMatch>
</IfModule>

<IfModule mod_headers.c>
Header set Vary "Accept-Encoding, X-HTTP-Method-Override, X-Forwarded-For, Remote-Address, X-Real-IP, X-Forwarded-Proto, X-Forwarded-Host, X-Forwarded-Port, X-Forwarded-Server"
</IfModule>

Problemi vari:
- se le impostazioni predefinite a livello di server non sono adatte, le impostazioni attuali nel file htaccess avranno la priorità
- se aggiorni molto il tuo sito web, potresti essere infastidito dalla cache locale del tuo browser, disabilita temporaneamente o permanentemente la cache tramite il tuo file htaccess con questo:
<IfModule mod_expires.c>
ScadeAttivo Disattivato
</IfModule>


Quando sei in modalità PHP-FPM con Nginx OPPURE desideri utilizzare Nginx

Il file .htaccess non ha più alcun effetto, c'è un'impostazione che puoi attivare utilizzando il plugin 'Nginx-Manager', sezione 'Ottimizzazioni contenuto', vedi impostazione: Expire / Cache control

Quest'ultima impostazione a livello di server corrisponde a questa:

# Media: immagini, icone, video, audio, HTC
posizione ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc|woff|woff2)$ {
scade 16d;
accesso_disconnessione;
add_header Cache-Control "public";
}

#CSS e Javascript
posizione ~* \.(?:css|js)$ {
scade 16d;
add_header Cache-Control "public";
}

Se quest'ultima impostazione predefinita non ti soddisfa, come è il caso ad esempio del sito yoorshop.hosting, utilizziamo questo:

# Media: immagini, icone, video, audio, HTC
posizione ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc|woff2)$ {
scade 7d;
accesso_disconnessione;
add_header Cache-Control "public";
add_header Access-Control-Allow-Origin "*";
}

#CSS e Javascript
posizione ~* \.(?:css|js)$ {
scade 7d;
add_header Cache-Control "public";
add_header Access-Control-Allow-Origin "*";
}

Esiste quindi la possibilità di personalizzarlo:
- disabilitare 'imposta intestazione scadenza' utilizzando il plugin 'Nginx-Manager', sezione 'Impostazioni applicazione'
- procedere come indicato in fondo al nostro articolo:
https://support.yoorshop.hosting/knowledgebase/3931/Come-configurare-un-sito-con-NGINX-PHP-FPM.html

vedere: Personalizzazione della configurazione Nginx