2013-08-16 2 views
0

나는 사용자가 업로드 한 이미지를 표시하는 웹 페이지가 있습니다. 이미지는 사용자가 페이지를 볼 때마다 서버에서 검색 할 필요가 없도록 긴 최대 시간으로 캐시됩니다. 그러나 사용자가 이미지를 바꾸기 시작할 때 문제가 발생합니다 (파일 이름은 일련 번호 01.jpg, 02.jpg 등). 사용자가 새로 고침 버튼을 클릭하지 않으면 업로드 후에도 이전 이미지가 계속 표시됩니다.헤더로 새로 고침을 강제하는 방법은 무엇입니까?

업로드 후이 페이지로 리디렉션되면 강제로 새로 고침하는 방법이 있습니까 (모든 이미지에 쿼리 문자열을 추가하지 않고)? 현재, PHP 헤더 함수를 사용하여 리디렉션을 수행하고 있습니다.

header("Location: //$host/user/$id"); 

답변

0

이것은 캐싱 메커니즘에 따라 다릅니다. 브라우저가 캐시해야 할 시간 (지문없이)을 제어하려면 must-revalidate (기본적으로 캐싱 없음)으로 설정해야합니다. 이것은 성능 손실을 가져온다. ETags304 Not Modified을 사용하여 캐싱에 대한 약간의 유사점을 얻을 수 있지만 요청의 오버 헤드는 이미 너무 나쁠 수 있습니다.

다른 리소스에서 캐시를 파기하도록 요청할 수는 없습니다. 웹이 작동하는 방식이 아닙니다.


지문을 사용하는 것이 좋습니다. 당신이 그것을 사용하고 싶지 않은 이유가 있습니까?

+0

사용자 페이지에 여분의 코딩이 필요하기 때문에 처음에는 다른 쉬운 옵션을 고려하고 싶습니다. –

+0

downvoted 사람 : 당신 downvoted 이유를 설명해 주시겠습니까? – Halcyon

+0

나는 대답에 무거운 downvotes 왜 몰라요. 도움을 청합니다. 핑거 프린팅을 원하지 않는 더 좋은 이유는 캐싱을 방지하고 올바르게 지적한 바와 같이 ETags가 덜 효율적이기 때문입니다. 하드 새로 고침은 여전히 ​​내가 선호하는 옵션입니다. –

관련 문제