web-dev-qa-db-fra.com

Compromis entre l'utilisation d'une chaîne de requête et l'intégration du numéro de version dans les fichiers CSS / JS

Je lisais des articles et des messages de forum sur l’utilisation des numéros de version dans les fichiers CSS/JS.

Il s'avère que l'intégration de numéros de version dans les noms de fichiers est plus fiable que l'utilisation d'une chaîne de requête. Les articles et discussions que j'ai trouvés étaient de retour en 2008 ou à peu près. Je me demandais si c'était toujours le cas aujourd'hui ou si les navigateurs et les serveurs géraient les choses différemment? La chaîne de requête est-elle maintenant aussi fiable?

4
user1448031

Juste pour clarifier, puisque ce n'est pas explicitement mentionné dans la question, que la raison de le faire en premier lieu est de casser le cache du client ...

Autant que je sache, la seule raison d'utiliser un "numéro de version incorporé" dans le nom du fichier lui-même plutôt que d'utiliser une chaîne de requête "dynamique" était que certains serveurs proxy (obsolètes?) Ne mettaient pas en cache les URL ne variant que par chaîne de requête - la requête la chaîne était simplement ignorée. Les navigateurs (et les serveurs) n’ont jamais eu de problème avec la méthode de la chaîne de requête.

Comme vous le dites, ces articles datent de 2008. Je pense que la situation est "meilleure" de nos jours.

Le premier article auquel vous créez un lien fait référence au serveur proxy "Squid" qui ne parvient pas à mettre en cache les ressources avec une chaîne de requête. Bien que cela soit vrai dans sa configuration par défaut "à l'époque", il pourrait être configuré pour mettre en cache les chaînes de requête, selon cette question ServerFault.com . Et, selon le commentaire sur cette réponse, cela est devenu la configuration par défaut dans "version 2.7 (2008)".

À partir de Squid Cache Wiki - Mise en cache de contenu dynamique :

La configuration obsolète par défaut de squid empêche la mise en cache du contenu dynamique (pages avec? Dans l'URI) .... Ce paramètre de stratégie a été créé à la fois lorsque les pages dynamiques contenaient rarement des contrôles de cache appropriés, cela a maintenant changé. Depuis la publication de Squid 2.7 et 3.1, les développeurs de calmar préconisent de modifier cette politique de mise en cache.

Les sites Stack Exchange respectent généralement les meilleures pratiques et utilisent la méthode de la chaîne de requête.

7
MrWhite