46 votes

Que fait '?' dans un lien Css ?

Je parcourais le html de mon site préféré... ahem... et j'ai vu ceci dans le markup :

<link href="http://stackoverflow.com/Content/all.min.css?d=20090107" rel="stylesheet" type="text/css" />

Que fait "?d=20090107" ? Je suppose qu'il s'agit d'une date, mais je ne sais pas pourquoi elle se trouve dans le chemin d'accès au fichier. Avez-vous une idée ?

70voto

Paul Dixon Points 122033

Il s'agit d'ajouter une certaine unicité au nom de fichier, de sorte que lorsqu'ils modifient le fichier CSS, ils peuvent changer le bit supplémentaire pour être totalement sûrs que chaque client rechargera le CSS plutôt que d'utiliser une version en cache.

Le serveur web ignorera le paramètre et servira /Content/all.min.css normalement.

Note : Bien que ce soit possible le CSS est généré dynamiquement, c'est un idiome commun pour assurer un rechargement, et étant donné que le paramètre est une date, cela semble assez probable.


Edit : Podcast 38 a mentionné ceci...

Nous utilisons l'en-tête Expires ou Cache-Control Header depuis que nous avons lancement. Cela évite au navigateur de faire des allers-retours lorsqu'il reçoit des éléments éléments changeant rarement, comme les images, javascript, ou css. L'inconvénient est que que, lorsque vous modifiez effectivement ces fichiers, vous devez vous rappeler de changer les noms de fichiers. Une partie de notre processus de construction "marque" maintenant ces fichiers avec un numéro de version afin que nous n'ayons plus n'avons plus à nous souvenir de le faire manuellement.

12voto

Sam152 Points 8472

C'est pour "vider le cache" à chaque fois que le style est mis à jour. Je suppose que la personne responsable de ces styles l'incrémente chaque fois qu'il y a un changement. C'est parce que le navigateur voit une URL différente dans le champ du style, et qu'il récupère la dernière version, même si elle se trouve techniquement au même endroit sur le serveur.

Comme nous l'avons signalé dans les commentaires, les fichiers css ont souvent une date d'expiration très éloignée dans le temps. Cette méthode permet d'éviter de mettre en cache les en-têtes correspondants.

Une astuce bien utile.

4voto

Pez Cuckow Points 5425

C'est pour faire croire au navigateur qu'il s'agit d'un nouveau fichier à chaque fois qu'il rafraîchit son cache.

Très utile lorsque vos feuilles de style changent régulièrement...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X