Como evito que o Tomcat armazene em cache? Tenho arquivos css e html básicos que carrego e uso via ajax e, a menos que eu reinicie o Tomcat, as alterações parecem não refletir. Máquinas diferentes, navegadores diferentes e não recebo os arquivos atualizados.
Pensamentos?
Responder1
Talvez seja necessário excluir a pasta de cache do aplicativo /work/Catalina/localhost
após alterar o cachingAllowed
sinalizador.
A configuração pode ser introduzida 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>
Responder2
Para Tomcat 8/Tomcat 9, as propriedades devem ser adicionadas em conf/context.xml da seguinte forma
<Context>
<Resources antiResourceLocking="false" cachingAllowed="false" />
...
</Context>
Talvez seja necessário excluir a pasta de cache do aplicativo em /work/Catalina/localhost após alterar o cachingAllowed
sinalizador. Limpe também o cache do IntelliJ IDEA (se você usá-lo para executar o Tomcat):
Mac: /Users/{:user}/Library/Caches/IntelliJIdea{:version}/tomcat/ Linux: /home/{:user}/.IntelliJIdea{:version}/system/tomcat/ Windows: C:\Users\{:user}\.IntelliJIdea{:version}\system\tomcat\
VerReferência de configuração do Apache Tomcat 9para outros parâmetros.
Responder3
Eu tive esse problema no Tomcat 7 e o motivo foi que eu tinha antiResourceLocking definido como verdadeiro (parecia uma boa ideia...).
De acordo com os documentos (http://tomcat.apache.org/tomcat-7.0-doc/config/context.html):
Observe que definir isso como verdadeiro tem alguns efeitos colaterais, incluindo a desativação do recarregamento de JSP em um servidor em execução: consulte Bugzilla 37668.
No meu caso, até mesmo arquivos de texto estático simples foram armazenados em cache.
Então, em resumo, pelo menos para um desenvolvimento rápido tive que usar:
antiResourceLocking="false"
cachingAllowed="false"
Responder4
Você verificou esta documentação:Referência de configuração do Apache Tomcat?
cacheMaxSize
-- Tamanho máximo do cache de recurso estático em quilobytes. Se não for especificado, o valor padrão será 10240 (10 megabytes).
cacheTTL
-- Quantidade de tempo em milissegundos entre a revalidação das entradas de cache. Se não for especificado, o valor padrão será 5000 (5 segundos).
cachingAllowed
-- Se o valor deste sinalizador for verdadeiro, o cache para recursos estáticos será usado. Se não for especificado, o valor padrão do sinalizador será verdadeiro.
Esses parâmetros são iguais para Tomcat 5.5 e Tomcat 6.0.