J'ai Django en cours d'exécution dans Apache via mod_wsgi. Je crois que Django met en cache mes pages côté serveur, ce qui provoque certaines fonctionnalités à ne pas fonctionner correctement.Comment désactiver le cache de page Django/mod_WSGI
J'ai un compte à rebours qui fonctionne en obtenant l'heure actuelle du serveur, en déterminant le temps de compte à rebours restant, et en fournissant ce nombre au modèle HTML. Un compte à rebours javascript prend alors le relais et exécute le compte à rebours pour l'utilisateur.
Le problème survient lorsque l'utilisateur actualise la page ou navigue vers une autre page avec le compte à rebours. La minuterie semble sauter sporadiquement à différents moments, revenant généralement à la même heure encore et encore à chaque rafraîchissement. En utilisant HTTPFox, la page n'est pas chargée depuis le cache de mon navigateur, donc il semble que Django ou Apache mettent en cache la page. Est-il possible de désactiver cette fonctionnalité? Je ne vais pas avoir assez de trafic pour m'inquiéter de la mise en cache de la sortie du script. Ou ai-je complètement tort de savoir pourquoi cela se passe? [Modifier] Dans les articles ci-dessous, il semble que la mise en cache soit désactivée dans Django, ce qui signifie que cela doit se produire ailleurs, peut-être dans Apache?
[Modifier] J'ai une description plus complète de ce qui se passe: Pour les 7 premières demandes faites au serveur, les pages sont rendues par le script et retournées, bien que chacune de ces 7 pages semble être mis en cache car il apparaît plus tard. Sur la 8ème demande, le serveur sert la première page. Sur la 9ème demande, il sert la deuxième page, et ainsi de suite dans un cycle. Cela dure jusqu'à ce que je redémarre Apache, lorsque le processus recommence. [Edit] J'ai configuré mod_wsgi pour qu'il n'exécute qu'un seul processus à la fois, ce qui a pour effet de réinitialiser la minuterie à la même valeur dans tous les cas. Il est intéressant de noter qu'un autre composant de ma page affiche une image aléatoire à chaque requête, en utilisant order ('?'), Qui rafraîchit chaque fois différentes images, ce qui indiquerait que la mise en cache se passe dans Django et non dans Apache. [Edit] À la lumière de l'édition précédente, je suis retourné et ai examiné le fichier views.py approprié, trouvant que la variable de début de compte à rebours a été établie globalement dans le module, en dehors des fonctions d'affichage. Le déplacement de ce paramètre dans les fonctions de vue a résolu le problème. Donc, il s'est avéré ne pas être un problème de mise en cache après tout. Merci à tous pour votre aide à ce sujet.
http://www.djangobook.com/en/2.0/chapter15/ – cwallenpoole