Tomcat 캐싱을 비활성화하려면 어떻게 해야 합니까? 이상한 정적 파일 문제가 있습니다.

Tomcat 캐싱을 비활성화하려면 어떻게 해야 합니까? 이상한 정적 파일 문제가 있습니다.

Tomcat의 캐싱을 어떻게 방지합니까? Ajax를 통해 로드하고 사용하는 CSS 및 기본 HTML 파일이 있는데 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\{:사용자}\.IntelliJIdea{:버전}\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-- 정적 리소스 캐시의 최대 크기(KB)입니다. 지정하지 않은 경우 기본값은 10240(10MB)입니다.

cacheTTL-- 캐시 항목 재검증 사이의 시간(밀리초)입니다. 지정하지 않을 경우 기본값은 5000(5초)입니다.

cachingAllowed-- 이 플래그의 값이 true이면 정적 리소스에 대한 캐시가 사용됩니다. 지정하지 않으면 플래그의 기본값은 true입니다.

이러한 매개변수는 Tomcat 5.5 및 Tomcat 6.0에서 동일합니다.

관련 정보