2012-10-14 15 views
5

Non riesco a far funzionare correttamente l'intestazione di scadenza sui file JS. Funziona bene ad esempio sui file CSS !?l'intestazione scade a causa di file javascript non funzionanti

Qualcuno potrebbe dirmi cosa sto facendo male? :(

.htaccess

ExpiresActive on 
ExpiresDefault A0 
ExpiresByType image/gif A29030400 
ExpiresByType image/jpeg A29030400 
ExpiresByType image/png A29030400 
ExpiresByType text/css A29030400 
ExpiresByType text/javascript A29030400 
ExpiresByType application/x-javascript A29030400 

intestazione sul file CSS

Cache-Control max-age=29030400 
Connection Keep-Alive 
Date Sun, 14 Oct 2012 12:06:45 GMT 
Etag "be-4cbcf2ad48b40" 
Expires Sun, 15 Sep 2013 12:06:45 GMT 
Keep-Alive timeout=5, max=97 
Server Apache/2.4.2 (Win64) PHP/5.4.3 

intestazione del file JS

Cache-Control max-age=0 
Connection Keep-Alive 
Date Sun, 14 Oct 2012 12:06:45 GMT 
Etag "1ad-4cc00d069f493" 
Expires Sun, 14 Oct 2012 12:06:45 GMT 
Keep-Alive timeout=5, max=99 
Server Apache/2.4.2 (Win64) PHP/5.4.3 
+2

Come test, i valori nel file htaccess sono quelli effettivamente mostrati nell'intestazione per il CSS? Ad esempio: se modifichi A29030400 in qualcos'altro, vedi quello riflesso nell'intestazione CSS servita? Inoltre, come un altro test, che cosa succede se si tenta di formattare la .htaccess in un modo diverso: < "\ (js) $" FilesMatch> '... ExpiresByType text/css A29030400 ExpiresDefault A29030400 ' ? – Tr1stan

+0

aggiungi una risposta .. la soluzione reg exp con filesMatch funziona! : D – clarkk

+0

Felice di averlo aiutato, risposta aggiunta. – Tr1stan

risposta

7

Provare avvolgendo un ExpiresDefault in un tag <filesMatch invece di utilizzare ExpiresByType:

<filesMatch "\.(js)$"> 
    ExpiresDefault A29030400 
</filesMatch> 
9

(non si può commentare ancora ...) Corro il seguenti impostazioni e funziona

ExpiresByType text/js "access plus 1 years" 
ExpiresByType text/javascript "access plus 1 years" 
ExpiresByType application/javascript "access plus 1 years" 
ExpiresByType application/x-javascript "access plus 1 years" 

Dovrebbe funzionare

Acclamazioni Robin

0

potrebbe essere necessario attivare il modulo Scade dall'interno Apache configurazione host.

Nel mio caso, ho aggiunto

ExpiresActive On 

destra prima della prima direttiva ExpiresByType ed è iniziato a lavorare immediatamente (dopo una ricarica di Apache).

Non sono sicuro del motivo per cui questo deve essere esplicitamente abilitato. Su altri server ha funzionato non appena ho abilitato la mod con a2enmod (forse con Apache 2.2, ma non riesco a trovare uno schema chiaro)