Bonjour à tous,
Voici mon problème:
J'utilise un framework (le mien) qui versionne les liens des css, js et images

Ce que je fais

je rajoute le timestamp du fichier dans les urls

<img src="logo.png?123456789">

dans Apache j'ai rajouté

    Header append Cache-Control "public, max-age=31536000"

cela apparait bien dans le navigateur mais il y a un expires qui apparait alors que mod_expires n'est pas chargé
il n'y a pas d'Etag (c'est déjà ça en moins)

Ce que je veux

Je voudrais mettre un max-age très long car de toute façon si je modifie mes fichiers, le timestamp changera.
et sutout éviter les revalidations.

Ce que j'obtiens

lors du reload de ma page j'ai des dizaines de 304 (not modified) inutiles
Sur le site de Grafikart c'est la même chose mais Graph à mis 'must_revalidate' ce qui a mon sens n'e sert à rien si on versionne les fichiers

Sous nginx je maitrise et lors d'un reload je n'ai que la page principale de rechargée.
Quelqu'un a t-il une explication ?

2 réponses


version apache si ça peu t'aider

# Expire headers
<IfModule mod_expires.c> 

    <FilesMatch "\.(ico|jpg|gif|png|css|js|eot|woff|otf|ttf|svg)$">  

        RequestHeader unset Cookie
        Header unset Set-Cookie   
        #Header set Cache-Control "max-age=25200"

        ExpiresActive on 
        ExpiresDefault "access plus 7 days" 
    </FilesMatch> 

    # KILL THEM ETAGS
    Header unset ETag
    FileETag none

</IfModule>
Huggy
Auteur

Merci pour ces infos
Je me suis rendu compte entre temps que c'est le F5 du navigateur qui en plus de faire le reload, il provoque le revalidate.
Si je clique simplement sur le lien de la page précédente, c'est OK pas de 304