web-dev-qa-db-fra.com

Comment désactiver la mise en cache Tomcat? Je rencontre des problèmes de fichiers statiques étranges

Comment empêcher Tomcat de mettre en cache? J'ai des fichiers CSS et html de base que je charge et utilise via ajax, et à moins que je ne redémarre Tomcat, les changements ne semblent pas se refléter. Différentes machines, différents navigateurs et je ne reçois pas les fichiers mis à jour.

Pensées?

26
Stefan Kendall

Vous devrez peut-être supprimer le dossier de cache d'application dans/work/Catalina/localhost après avoir modifié l'indicateur cachingAllowed.

La configuration peut être introduite dans server.xml comme

<Context className="org.Apache.catalina.core.StandardContext"
                 cachingAllowed="false"
                 charsetMapperClass="org.Apache.catalina.util.CharsetMapper"
                 cookies="true" 
                 reloadable="false" 
                 wrapperClass="org.Apache.catalina.core.StandardWrapper">
        </Context>
21
Adam Brand

Pour Tomcat 8/Tomcat 9, les propriétés doivent être ajoutées dans conf/context.xml comme suit

<Context>
  <Resources antiResourceLocking="false" cachingAllowed="false" />
  ...
</Context>

Vous devrez peut-être supprimer le dossier de cache d'application dans/work/Catalina/localhost après avoir modifié l'indicateur cachingAllowed. Videz également le cache d'IntelliJ IDEA (si vous l'utilisez pour exécuter Tomcat):

 Mac:/Users/{: user}/Library/Caches/IntelliJIdea {: version}/Tomcat/
 Linux: /home/{:user}/.IntelliJIdea{:version}/system /Tomcat/[.____.[Windows: C:\Users\{: user} \. IntelliJIdea {: version}\system\Tomcat\

Voir Référence de configuration Apache Tomcat 9 pour les autres paramètres.

14
naXa

J'ai eu ce problème dans Tomcat 7 et la raison en était que j'avais antiResourceLocking réglé sur true (cela sonnait comme une bonne idée ...).

Selon les documents ( http://Tomcat.Apache.org/Tomcat-7.0-doc/config/context.html ):

Veuillez noter que la définition de la valeur true a certains effets secondaires, notamment la désactivation du rechargement JSP sur un serveur en cours d'exécution: voir Bugzilla 37668.

Dans mon cas, cela a même provoqué la mise en cache de fichiers de texte statique.

Donc, en résumé, au moins pour un développement rapide, j'ai dû utiliser:

antiResourceLocking="false"
cachingAllowed="false"
13
Reto Höhener

Avez-vous vérifié cette documentation: Référence de configuration Apache Tomcat ?

cacheMaxSize - Taille maximale du cache de ressources statiques en kilo-octets. S'il n'est pas spécifié, la valeur par défaut est 10240 (10 mégaoctets).

cacheTTL - Temps en millisecondes entre la revalidation des entrées de cache. S'il n'est pas spécifié, la valeur par défaut est 5000 (5 secondes).

cachingAllowed - Si la valeur de cet indicateur est vraie, le cache des ressources statiques sera utilisé. S'il n'est pas spécifié, la valeur par défaut de l'indicateur est vraie.

Ces paramètres sont les mêmes pour Tomcat 5.5 et Tomcat 6.0.

4
KPWINC