Tenho uma aplicação web que exibe alguns objetos 3D. Os objetos 3D são arquivos estáticos em um subdiretório do TomCat. A aplicação é baseada em Java 8 e JavaScript. Se rodar no TomCat 8.5, tudo funciona bem em todos os navegadores. Usando o TomCat 9.0, ele não exibe os objetos. Descobri até agora que parece ser um problema de cache: quando desativo o cache nos modos de desenvolvedor do Edge ou do Chrome, tudo volta a carregar perfeitamente.
Minha pergunta é: como posso desativar o cache no TomCat 9?
Já tentei algumas ideias que encontrei no fórum, como:
- adicionando as meta tags Cache-Control, Pragma e Expires à seção head em html
- adicionando um arquivo TOMCATROUTE/conf/context.xml com < Context>< Resources antiResourceLocking="false" cachingAllowed="false"/>< /Context>
- use o arquivo context.xml abaixo em conf/Catalina/localhost (os arquivos que não devem ser armazenados em cache estão localizados em c:\xxx\service e são invocados por TOMCATINVOKE/service/... )
mas nenhuma delas funcionou. Alguma ideia?
Obrigado.
<Context>
<Resources>
<PreResources className="org.apache.catalina.webresources.DirResourceSet"
base="C:\xxx\service"
webAppMount="/service" />
</Resources>
</Context>
PS: O mais estranho é que funciona bem no FireFox, mas não no Edge ou no Chrome (exceto quando mudo para o modo de desenvolvedor e desativo o cache).
Você pode usar um filtro de servlet simples para desabilitar o cache de recursos do aplicativo. Abaixo está um filtro de servlet simples.
Registre-se em web.xml
Coloque seus arquivos 3D em: