header expire on javascript files not working

10,912

Solution 1

Try wrapping an ExpiresDefault in a <filesMatch tag instead of using ExpiresByType :

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

Solution 2

(can't comment yet...) I run the following settings and it works.

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" 

Should work

Cheers Robin

Solution 3

You might need to activate the Expires module from inside your Apache host configuration.

In my case, I added

  ExpiresActive On

right before the first ExpiresByType directive and it started working instantly (after an Apache reload).

I'm not sure why this needs to be explicitly enabled. On other servers it used to work as soon as I enabled the mod with a2enmod (maybe with Apache 2.2, but I can't find a clear pattern)

Share:
10,912

Related videos on Youtube

clarkk
Author by

clarkk

https://dynaccount.dk https://dynaccount.dk/bogfoeringsprogram/ https://dynaccount.dk/regnskabsprogram/

Updated on September 14, 2022

Comments

  • clarkk
    clarkk about 1 year

    I can't get the expire header on JS files to work properly.. It works fine on eg CSS files!?

    Could anybody tell me what Im doing wrong? :(

    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
    

    header on CSS file

    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
    

    header on JS file

    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
    
    • Tr1stan
      Tr1stan about 11 years
      As a test, are the values in the htaccess file those actually being shown in the header for the CSS? EG: if you change the A29030400 to something else, do you see that reflected in the served CSS header? Also, as another test, what happens if you try formatting the htaccess in a different way: ... ExpiresByType text/css A29030400 <filesMatch "\.(js)$"> ExpiresDefault A29030400 </filesMatch> ?