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

Я использую Tomcat 7 на Windows XP.

  • У меня есть каталог со статическими файлами (HTML, CSS, JS) в %TOMCATDIR%/webapps/myapplication,
  • Они доступны через localhost:8080/myapplication

Когда изменение происходит с файлом в моей директории сервера, это не отражается:

  • измененные файлы возвращаются (200 OK) так же, как и ранее (протестировано с Fiddler; наверняка не проблема с кэшем браузера - очищенный кэш, использование других браузеров и т. д.),
  • Вновь созданные файлы в этом каталоге недоступны (404).

Это происходит независимо от того, сколько раз я пытаюсь перезагрузить файл или даже добавить строку запроса к нему (img.jpg?timestamp=...).

В %TOMCATDIR%/conf/context.xml Я установил различные директивы для отключения кэширования на стороне сервера:

<?xml version='1.0' encoding='utf-8'?>
<Context antiResourceLocking="true" cachingAllowed="false" cacheMaxSize="1" cacheTTL="1">
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>

Что случилось?

3 ответа

Решение

Решение, кажется, удалить antiResourceLocking="true",

Если кто-то более осведомлен о теме или знает, как обойти ее, я буду благодарен.

Tomcat 8 - отключить кеширование статических ресурсов:

context.xml

     <Resources cachingAllowed="false"/>

Наконец, решение состоит в том, чтобы заменить содержимое файла%TOMCATDIR%/conf/context.xml в:

<?xml version='1.0' encoding='utf-8'?>
<Context cachingAllowed="false" cacheMaxSize="1" cacheTTL="1">
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>
Другие вопросы по тегам