Назад | Перейти на главную страницу

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

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

Мысли?

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

Для 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 для других параметров.

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

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

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

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

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

antiResourceLocking="false"
cachingAllowed="false"

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

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

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

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

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