Как отключить кэширование tomcat? У меня странные проблемы со статическими файлами

Как отключить кэширование tomcat? У меня странные проблемы со статическими файлами

Как мне запретить tomcat кэшировать? У меня есть css и основные html-файлы, которые я загружаю и использую через ajax, и если я не перезапущу tomcat, изменения, похоже, не отразятся. Разные машины, разные браузеры, и я не получаю обновленные файлы.

Мысли?

решение1

Возможно, вам придется удалить папку кэша приложения /work/Catalina/localhostпосле изменения cachingAllowedфлага.

Конфигурация может быть введена в server.xmlвиде

    <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>

решение2

Для Tomcat 8 / Tomcat 9 свойства должны быть добавлены в conf/context.xml следующим образом

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

Возможно, вам придется удалить папку кэша приложения в /work/Catalina/localhost после изменения флага cachingAllowed. Также очистите кэш IntelliJ IDEA (если вы используете его для запуска Tomcat):

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

ВидетьСправочник по конфигурации Apache Tomcat 9для других параметров.

решение3

У меня была эта проблема в Tomcat 7, и причина была в том, что я установил antiResourceLocking в значение true (это звучало как хорошая идея...).

Согласно документам (http://tomcat.apache.org/tomcat-7.0-doc/config/context.html):

Обратите внимание, что установка этого параметра в значение true имеет некоторые побочные эффекты, включая отключение перезагрузки JSP на работающем сервере: см. Bugzilla 37668.

В моем случае это даже привело к кэшированию простых статических текстовых файлов.

Итак, подводя итог, по крайней мере для быстрой разработки мне пришлось использовать:

antiResourceLocking="false"
cachingAllowed="false"

решение4

Вы проверили эту документацию:Справочник по конфигурации Apache Tomcat?

cacheMaxSize-- Максимальный размер кэша статических ресурсов в килобайтах. Если не указано, значение по умолчанию — 10240 (10 мегабайт).

cacheTTL-- Количество времени в миллисекундах между повторной проверкой записей кэша. Если не указано, значение по умолчанию — 5000 (5 секунд).

cachingAllowed-- Если значение этого флага равно true, будет использоваться кэш для статических ресурсов. Если не указано, значение флага по умолчанию равно true.

Эти параметры одинаковы для Tomcat 5.5 и Tomcat 6.0.

Связанный контент