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>