Comment faire un temps de chargement de 0 ms pour les fichiers javascript / css?

J’ai remarqué que certains fichiers ont un temps de chargement de 0 ms et que le chrome écrit qu’il provient du cache.

Vous pouvez voir dans l’image (le débordement de stack le montre un peu petit, mais il suffit de zoomer ou d’ouvrir l’URL d’image dans un autre onglet):

Outils pour développeurs

Et colonne de statut est intéressant – ceux avec 304 Non modifié ont un certain temps de chargement. Mais en bas – admin.js et d’autres fichiers de fonts – dans la colonne Taille / Contenu, nous voyons qu’ils sont chargés depuis le cache et prennent 0 ms.

Alors, pourquoi les autres fichiers ne pourraient-ils pas être chargés depuis le cache s’ils ne sont pas modifiés?

Et existe-t-il une solution simple pour tout charger depuis le cache? Et quand je voudrai recharger, je changerai le nom du fichier comme je l’ai fait au premier fichier – en ajoutant un horodatage.

Chaque fois que vous naviguez vers d’autres pages ou que vous en rechargez une *, le navigateur doit vérifier si la ressource a été modifiée ou non sur le serveur. Si la ressource est identique, le serveur n’a pas à l’envoyer à nouveau et envoie un code de statut 304 ( non modifié ); mais si la ressource a changé, elle envoie alors la nouvelle ressource

Par défaut, nginx n’envoie pas au navigateur l’en-tête HTTP Expires, qui indique au navigateur que la ressource ne changera pas pendant une certaine période (ce qui lui permet de mettre en cache cette ressource sans la demander pendant cette période).

Donc, si vous savez que vous avez des ressources peu susceptibles de changer, vous pouvez configurer nginx pour envoyer l’en-tête Expires . Par exemple, si vous souhaitez que le navigateur de l’utilisateur cache toutes les images, CSS et JS sur votre site pendant un mois, vous pouvez append les éléments suivants à la configuration du serveur nginx:

 location ~* \.(?:css|js|png|gif|jpe?g|ico|svg)$ { expires 30d; } 

Si vous mettez à jour l’un de ces fichiers, les navigateurs ne téléchargeront pas la nouvelle version avant l’expiration de la période. Pour éviter cela et contourner le cache du navigateur, vous pouvez append un horodatage (ou tout autre paramètre) à vos fichiers. Vous pouvez append à l’URI l’horodatage après un ? , vous n’avez donc pas à changer le nom interne de ce fichier sur le serveur.

* Remarque: Lorsque vous rechargez une page, les navigateurs vérifient si les ressources ont changé, même si un en-tête Expires été envoyé lors de leur téléchargement.