Lorsque j'utilise Firefox pour accéder à l'un de mes sites contenant de nombreux fichiers CSS, il arrive périodiquement que tous les fichiers CSS ne soient pas téléchargés.
En regardant dans le panneau de contrôle du développeur dans Firefox (F12), je vois que, lorsque le problème se produit, les fichiers ont un statut = 0, presque comme si la demande n'avait jamais été envoyée au serveur, mais en regardant le serveur, la demande est là.
J'ai essayé de simplifier le problème autant que possible, et j'ai réussi à le réduire à un fichier html qui contient 100 fichiers CSS, et un peu de javascript qui détectera automatiquement quand le problème se produit.
Ceci dans le but de permettre aux gens de tester plus facilement leurs propres installations, et de prouver que je ne suis pas simplement fou.
Paramètres d'essai :
Nouvelle version de debian 9 sur GCP (également testée sur centOS)
nginx 1.10.3 (mais cela arrive aussi avec les dernières versions stable et mainline)
HTTPS/SSL activé (testé avec SSL auto-signé, Let's encrypt et commercial)
HTTP2 activé
Firefox 66 (testé également avec Firefox 65)
Maintenant, lorsque j'accède à mon HTML de test, le javascript rechargera la page jusqu'à ce que l'erreur se produise, puis affichera une alerte. Cela peut prendre de quelques secondes à cinq minutes, mais cela se produit généralement dans la première minute.
Firefox téléchargera les premiers fichiers CSS et semblera ensuite sauter le reste, ou sautera 20-30-40 fichiers et essaiera à nouveau, les fichiers sautés auront le statut 0. le journal d'accès de nginx indiquera qu'il a répondu avec un statut 200 ou 304, mais firefox n'affichera jamais cette information.
Le kit de test html/css peut être téléchargé ici : Paquet de test html
Je ne suis pas sûr à 100 % de qui/quoi est en cause ici
Cela pourrait facilement être moi, mais si c'est le cas, personne ne devrait être en mesure de reproduire mes résultats, et plusieurs personnes l'ont déjà fait
Il pourrait s'agir de Firefox ou de nginx, ou d'une combinaison des deux.
Toute aide serait grandement appréciée, je me frappe la tête contre le mur depuis deux jours.
Édition / clarification :
Je me rends compte que je ne devrais jamais "forcer" un utilisateur à télécharger 100 fichiers CSS sur un serveur de production :)
100 était juste le nombre pour lequel les résultats étaient très faciles et rapides à reproduire, et j'ai donc choisi 100 pour le paquet de test, afin qu'il soit plus facile/rapide pour vous de reproduire le problème par vous-mêmes.