NoCache

Désactiver les caches de SPIP

Présentation

Quand ce plugin est activé, les différents caches de SPIP ne sont plus utilisés. SPIP est alors plus lent, mais pendant les tests ou le développement d’un site, c’est très utile pour être sûr qu’un problème ne vient pas d’une vieille version du squelette qui serait en cache. Les caches de pages, de balises et de plugin.xml sont gérés. Pour utiliser le cache à nouveau, pour la mise en ligne officielle par exemple, il suffit de désactiver ce plugin (simplicité = tranquillité d’esprit).

Installation

Le plugin s’installe classiquement : Installer un plugin-spip

No Cache (1.0.0)
À ne pas utiliser en production

Version

Ceci est la 1.0 - première version stable.
Commentaires bienvenus !

Différence avec d’autres plugins

De gentils contributeurs SPIP ont mentionné l’existence de cette fonctionnalité dans d’autres plugins :

-  Couteau suisse
-  desactiver_cache_1_9
-  en_travaux

Ces outils ne gèrent que le cache de page, donc quand on développe on peut toujours avoir des problèmes de cache, NoCache gère aussi le cache de squelettes et de plugin.xml.

Au niveau technique couteau_suisse et en_travaux utilisent la variable cachée _NO_CACHE de SPIP 2.0, et desactiver_cache passe par une bidouille 1.9 (forcer REQUEST_METHOD=POST). NoCache utilise aussi _NO_CACHE pour le cache de pages sous SPIP 2 (une surcharge sous SPIP 1.9), et d’autres techniques pour les autres types de cache (surcharge ou suppression d’un fichier précis).

Sinon le but est aussi d’avoir quelque chose qui permette d’avoir l’esprit tranquille, histoire de ne pas se demander « est-ce que j’ai coché la bonne case de cache », « est-ce que j’ai bien activé le sous-module du couteau_suisse », etc. Quand NoCache est activé, il n’y plus de cache, et c’est tout :)

Apparté : le cache du navigateur

NoCache ne cherche pas pour l’instant à désactiver le cache du navigateur (Firefox, Konqueror, etc.). Il semble que le navigateur ne pose pas de problème avec SPIP 2.0 (pas de gestion particulière de l’en-tête If-Modified-Since), mais n’hésitez pas à poster si vous pensez que NoCache peut faire quelque chose.

Certains fichiers n’étant pas gérés par SPIP (ex : les images et les CSS), vous aurez de toute façon besoin de connaitre comment désactiver le cache du navigateur.

Sachez donc qu’il y a différentes manière de recharger une page depuis le navigateur :
-  rechargement normal avec F5, ou Ctrl+R, ou le bouton recharger
-  rechargement complet (qui ne tient pas compte des en-têtes de cache HTTP) en maintenant en plus la touche Majuscule du clavier.

Enfin, il se peut que le navigateur mémorise un type de contenu (text/html, text/plain, image/jpeg, etc.) et ne le mette pas à jour en cas de rechargement. Dans ce cas la seule solution est le vider le cache du navigateur. Sous Firefox : Outils -> Effacer mes traces -> Cocher la case « cache ».

Le logo vient du CRDP de Bourgogne, retouché par Maïeul, sous licence CC-BY.

Je voudrais remercier mon employeur, Cliss XXI, pour m’avoir donner du temps pour travailler sur ce projet.

Discussion

5 discussions

  • Michaël

    Lorsque NoCache est activé, les changements de configuration du plugin Socialtags sont bien enregistrés mais ne sont pas répercutés sur le site public.

    J’ai désactivé le plugin nocache et mes changements de configuration de Socialtags sont apparus aussitôt sur le site public.

    J’utilise Spip 2.1.12[18732], NoCache 1.0.0 [52653], CGF 1.16.0[55674] et Social Tags 0.9.13[59097]

    Michaël

    Répondre à ce message

  • Salut,

    Le var_mode=debug ne fonctionne pas du tout. Il donne une page blanche, c’est sans doute logique (pas de cache = le debug ne peut pas analyser le cache).

    Il serait peut être possible de désactiver nocache si le mode debug est activé.

    A voir .
     :)

    Répondre à ce message

  • Me sert bien pour retravailler sur les squelettes de type plugin.

    Merci

    Répondre à ce message

  • 1

    A noter qu’un simple

    define('_NO_CACHE',1);

    dans le fichier mes_options.php suffit largement.

    • Non, relis le paragraphe explicatif, NoCache supprime également le cache de squelettes et le cache de plugin_xml ce qui est utile pour le développement de balises et de plugins.

      L’astuce du ’define’ ne sert que pour le développement de squelette, et n’est pas visible _simplement_ dans l’interface d’administration.

    Répondre à ce message

  • Pour desactiver le cache du navigateur il y a l’exellente extension web developer pour Firefox (et Flock)

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom