¿Cómo evito que Tomcat almacene en caché? Tengo archivos css y html básicos que cargo y uso a través de ajax y, a menos que reinicie Tomcat, los cambios no parecen reflejarse. Diferentes máquinas, diferentes navegadores y no recibo los archivos actualizados.
¿Pensamientos?
Respuesta1
Es posible que deba eliminar la carpeta de caché de la aplicación /work/Catalina/localhost
después de cambiar la cachingAllowed
bandera.
La configuración se puede introducir server.xml
como
<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>
Respuesta2
Para Tomcat 8/Tomcat 9, las propiedades deben agregarse en conf/context.xml de la siguiente manera
<Context>
<Resources antiResourceLocking="false" cachingAllowed="false" />
...
</Context>
Es posible que tengas que eliminar la carpeta de caché de la aplicación en /work/Catalina/localhost después de cambiar la cachingAllowed
bandera. También borre el caché de IntelliJ IDEA (si lo usa para ejecutar Tomcat):
Mac: /Usuarios/{:usuario}/Biblioteca/Caches/IntelliJIdea{:versión}/tomcat/ Linux: /home/{:usuario}/.IntelliJIdea{:versión}/system/tomcat/ Windows: C:\Users\{:usuario}\.IntelliJIdea{:versión}\system\tomcat\
VerReferencia de configuración de Apache Tomcat 9para otros parámetros.
Respuesta3
Tuve este problema en Tomcat 7 y la razón fue que tenía antiResourceLocking configurado en verdadero (parecía una buena idea...).
Según los documentos (http://tomcat.apache.org/tomcat-7.0-doc/config/context.html):
Tenga en cuenta que establecer esto en verdadero tiene algunos efectos secundarios, incluida la desactivación de la recarga de JSP en un servidor en ejecución: consulte Bugzilla 37668.
En mi caso, incluso provocó que se almacenaran en caché archivos de texto estático sin formato.
Entonces, en resumen, al menos para un desarrollo rápido tuve que usar:
antiResourceLocking="false"
cachingAllowed="false"
Respuesta4
¿Has revisado esta documentación?Referencia de configuración de Apache Tomcat?
cacheMaxSize
-- Tamaño máximo de la caché de recursos estáticos en kilobytes. Si no se especifica, el valor predeterminado es 10240 (10 megabytes).
cacheTTL
-- Cantidad de tiempo en milisegundos entre la revalidación de las entradas de la caché. Si no se especifica, el valor predeterminado es 5000 (5 segundos).
cachingAllowed
-- Si el valor de este indicador es verdadero, se utilizará la caché para recursos estáticos. Si no se especifica, el valor predeterminado de la bandera es verdadero.
Estos parámetros son los mismos para Tomcat 5.5 y Tomcat 6.0.