2012-07-04 3 views
4

Windows XP에서 Tomcat 7을 사용합니다.Tomcat은 새로 생성 된 정적 파일을 볼 수없고 이전 파일을 캐싱하는 서버 측

  • %TOMCATDIR%/webapps/myapplication에 정적 파일 (HTML, CSS, JS)이있는 디렉토리가 있습니다.
  • 그들은

변화가 내 서버의 디렉토리에있는 파일은 어떻게 localhost:8080/myapplication를 통해 접근 할 수있어, 은 반영되지 않습니다

  • 수정 된 파일은 (200 OK) 같은 반환 이전처럼 (Fiddler로 테스트 됨, 브라우저 캐시 문제가 아닌지, 다른 브라우저를 사용하여 캐시가 삭제되었는지 등),
  • 해당 디렉토리에 새로 생성 된 파일에 액세스 할 수 없습니다 404).

위의 내용은 파일을 다시로드하거나 쿼리 문자열을 몇 번이나 추가하려고했는지에 관계없이 발생합니다 (img.jpg?timestamp=...).

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

어떤 문제가 : %TOMCATDIR%/conf/context.xml에서

I는 서버 측 캐싱을 사용하지 않도록 다양한 지침을 설정 한?

+0

도 참조 http://serverfault.com/questions/40205/how-do-i- disable-tomcat-caching-im-having-weird-static-file-problems 및 http://stackoverflow.com/questions/3743136/how-to-disable-tomcat-caching –

답변

1

용액은 제거제 인 것으로 보인다. antiResourceLocking="true".

누군가 주제에 대해 더 잘 알고 있거나 다른 방법으로 해결 방법을 알고 있다면 감사 할 것입니다.

+0

파일을'webapps/myapplication'을 사용하면 webapp 배포를 취소 할 때 Tomcat이 모든 것을 삭제할 위험이 있습니다. 배치 디렉토리 외부의 디렉토리를 "마운트"하려면''요소의'별칭 (aliases) '기능을 조사해야합니다.이 디렉토리는 배치 해제 중에 삭제되지 않습니다. –

+0

나는 'myapplication'에 압축을 풀고있는 WAR가 아니라 자신을 생성 한 폴더를 의미합니다. 그 상황에서 Tomcat이 제거하지 않아야합니다. 맞습니까? 어쨌든, 나는이 폴더에서 직접 개발하지 않는다. 나는 다른 곳에서 그것을한다. 그리고 Eclipse FileSync 플러그인은 dev 폴더에서 파일 저장시 서버 폴더로 동기화한다. 그러나 나는 당신이 쓴 것을 보려고 노력할 것입니다. –

+0

Tomcat이 배치 해제시 배포 디렉토리 (예 :'webapps/myapp')를 삭제한다는 말입니다. 또한 심볼릭 링크 (그런 것들을 지원하는 파일 시스템에서)를 따르고 모든 파일을 삭제합니다. 'aliases'를 사용하면 별명이없는 경로에있는 파일은 배치 해제 중에 삭제되지 않습니다. –

0

톰캣 (8) - 정적 리소스의 해제 캐싱 :

의 context.xml

     <Resources cachingAllowed="false"/>