У меня есть сервер Apache Tomcat 7. Если я изменю файл на сервере (например, таблицу стилей, файл javascript или любой простой / текстовый файл), например, используя vim. Затем, если я перейду к файлу в интернет-браузере и несколько раз нажму F5, пока не увижу фактическое изменение, мне придется подождать (нажимая F5 каждые 500 мс) несколько секунд (~ 3 секунды), прежде чем я увижу то, что я просто изменилось.
Короче говоря: если файл был изменен на сервере, я вижу его примерно через 3 секунды на стороне клиента. Итак, где-то должен быть кеш, вероятно, на стороне сервера, поскольку я использую F5, который должен отбрасывать кеш на стороне клиента. Итак, как я могу настроить каталог на моем сервере Apache Tomcat, чтобы он не кэшировал файлы?
Я хочу сделать это, потому что я создал простой веб-сайт на основе Ajax / Servlet для чата. Но после ввода сообщения оно появится через ~ 3 секунды. Я знаю, что это может быть намного быстрее, потому что я делал это раньше на бесплатном сервере веб-хостинга PHP.
Tomcat кэширует статический контент с TTL по умолчанию 5 секунд. Если вы хотите изменить это, см. http://tomcat.apache.org/tomcat-7.0-doc/config/context.html#Attributes. В частности, вам нужны cacheTTL, cachingAllowed и, возможно, cacheMaxSize и cacheObjectMaxSize.
Не уверен, как Tomcat добавляет ко всему без кеша. Самый простой способ самостоятельно контролировать заголовки - это написать и настроить общий фильтр заголовков в web.xml следующим образом:
=== web.xml ===
NoCache x.y.z.filters.ResponseHeaderFilter
Cache-Control no-cache, необходимо перепроверить
CacheForWeek uk.co.slc.crm.common.filters.ResponseHeaderFilter
Cache-Control max-age = 604800, общедоступный
NoCache /*.do
CacheForWeek / images / *
CacheForWeek /*.js
CacheForWeek /*.css
=== web.xml ===