2009-11-09 4 views
2

이미지를 자르려면 PHP 스크립트를 작성하고 있습니다. 스크립트는 '새'이미지로 '오래된'이미지를 덮어 씁니다.하지만 새 이미지를 가져 오기로되어있는 페이지를 다시로드 할 때 나는 여전히 이전 이미지를 봅니다.이미지가 변경되었지만 브라우저에서 동일하게 나타납니다.

로컬 컴퓨터에서 작업하고있는 하드 디스크를 확인한 결과, 이미지가 변경되었음을 알 수 있지만 HTML이 인식하지 못합니다. 어쩌면 캐싱 문제일까요? 어떻게 해결할 수 있습니까?

덕분에, 패트릭 당신이 당신의 HTML이 올바른 파일을 가리키고 있는지 경우

답변

5

이미지가 캐시되지 않도록하는 일반적인 기술은 이미지의 URL 끝에 매개 변수로 현재 시간을 밀리 초 단위로 추가하는 것입니다. 웹 서버는 매개 변수를 무시하고 매번 동일한 이미지를 제공하지만 이미지의 URL이 다르므로 브라우저 (및 모든 중간 캐시)가 캐시 미스를 등록합니다.

<a href='/images/someimage.png?d= <?php echo(date("U")); ?> '> 
+0

내 브라우저가 아무 것도 현금으로 설정되어 있지 않아서, 나는 미쳤다 ... 고마워! – Nicsoft

2

; Ctrl + F5?

+0

예, 올바른 파일을 가리 킵니다. 나는 페이지 소스를 싫어했다. 또한 reloading은 새로운 이미지를 보여줍니다. – patrick

0

브라우저가 이미지를 캐싱하지 못하도록 올바른 헤더를 보내고 있습니까?

예컨대 : http://www.badpenguin.org/php-howto-control-page-caching

+0

일부 ISP는 squid 나 다른 캐싱 프록시를 사용하여이를 무시합니다. 내 백업 공급자는 그 시대에 군중에 빠지기 때문에 내 기본 연결이 끊어지면 나는 아직도 싫증을 나게됩니다. –

+0

예, 가능합니다. 그러나 캐싱에 대한 가장 일반적인 문제를 먼저 확인한 다음이 종류의 ISP 관행으로 되돌립니다. – Palantir

0

그것은 당신의 ISP가 캐싱 프록시를 사용하고있을 수 있습니다. BrowserShots으로 URL을 확인하여 이것이 사실 인 지 확인하십시오. 내 백업 DSL은 대역폭을 절약하기 위해이 작업을 수행하는 공급자로부터 온 것입니다. 그들은 또한 그것을하지 말라고 말하는 모든 헤더를 무시합니다.

1

URL에 타임 스탬프를 추가하십시오. 이렇게하면 대부분의 브라우저가 이미지를 캐싱하지 않습니다. 예 : http://localhost/test.jpg?1257783872

편집 : 오, 라이언은 이미 비슷한 대답을했습니다. 죄송합니다.

관련 문제