Как мне запретить 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.