2009-06-24 4 views
5

Existe-t-il un moyen de déterminer ou de forcer la mise en cache d'un fichier CSS si l'utilisateur utilise un ancien fichier?Forcer CSS Recache

Répondre

13

Le moyen le plus sûr de s'assurer que tout le monde recharge votre nouveau fichier est de changer son URL. Une façon raisonnable de le faire sans renommage réellement est de virer de bord sur une chaîne aléatoire:

<link rel='stylesheet' href='/mystyles.css?random=87365835'> 

C'est l'aide d'un marteau-pilon pour casser une noix, et sans passer par tous les mécanismes HTTP qui existent pour ce faire, mais il sera absolument travailler partout, alors que les autres techniques ont toutes des réserves. @jitter: Vous n'avez pas besoin de changer l'URL automatiquement pour chaque requête - vous pouvez vous baser sur l'horodatage du fichier CSS, ou même le changer à la main quand vous voulez vous assurer que le CSS est rechargé.

+0

c'est une approche courante - voir aussi http://stackoverflow.com/questions/438821/what-does-do-in-a-css-link –

+0

mais cela met une lourde charge sur vos serveurs car le client charge maintenant le CSS chaque fois que le? random = xxx est differnet tout le temps. Comme les navigateurs ne sont pas censés mettre en cache les URLs avec des variables (bien que IE et FF le fassent) – jitter

+0

Eh bien cela n'est pas supposé fonctionner. Les navigateurs comprennent l'URL et ne doivent pas mettre en cache la partie? Asdasd = adssad. – jitter