it-swarm-ru.tech

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

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

Мысли?

26
Stefan Kendall

Возможно, вам придется удалить папку кэша приложения в/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>
21
Adam Brand

Для 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 {: версия}/Tomcat/
 Linux: /home/ndom:usercasts/.IntelliJIdea‹:version работой/system /Tomcat/
Windows: C:\Users\{: user} \. IntelliJIdea {: версия}\system\Tomcat\

Смотрите Справочник по настройке Apache Tomcat 9 для других параметров.

14
naXa

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

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

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

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

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

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

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

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

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

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

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

4
KPWINC