2013-02-17 4 views
0

내가 요청을 할 때 단순히 내 이미지 URL에이미지가 변경되었다는 것을 브라우저에 알리는 방법은 무엇입니까?

?time=current_time_stamp 

를 추가하여 이미지 캐시를 휴식.

그러나 사용자가 사진을 업데이트 한 후 즉시 캐시를 중단해야합니다.

사용자 사진의 모든 이미지 요청에 타임 스탬프를 추가 할 수 있지만 과장된 것처럼 보입니다.

브라우저에 알려주는 방법이 있습니까? 이미지가 업데이트되었습니다. 캐시를 새로 고침하십시오.

그렇지 않으면 이미지의 모든 변경 사항을 캐치하기 위해 모든 동적 이미지에 타임 스탬프 또는 유사 항목을 추가해야합니다.

감사

+1

'? time = some_time_stamp'을 추가하는 대신'? time = time_last_modified'를 추가하지 않으시겠습니까? 이 값은 파일 시스템에서 가져 오거나 * DB에서 직접 저장할 수 있습니다. – Matt

+0

'some_time_stamp'이란 무엇입니까? 이미지의 업데이트 시간은? – Bergi

답변

1

이 작업을 수행하는 가장 좋은 방법은 서버에있는 이미지의 파일 이름을 변경 할 때마다 이미지가 변경되도록 이미지 변경, 브라우저 HTML 따라서 새로운 파일 이름과에 대한 참조를 포함하는 경우 브라우저는 새 파일 이름 (캐시에 없음)을 요청합니다. 파일 이름은 파일이 수정 될 때 늘리는 버전 번호를 포함하거나 파일 이름의 일부로 타임 스탬프 만 사용할 수 있습니다.

이것은 두 가지 장점을 모두 제공합니다. 이미지가 변경되지 않은 경우 브라우저에서 최대 캐싱을 얻지 만 이미지가 변경되면 즉시 업데이트됩니다.

또한 서버는 각 요소의 캐싱 지시문을 제어하여 브라우저에 캐시할지 여부 또는 시간을 지시 할 수 있습니다.

+0

SQL 테이블의 파일 이름을 _1, _2 등으로 간단히 업데이트하는 것이 매우 쉬웠습니다. 이제 얼마나 많은 업로드가 있었는지 추적 할 수 있습니다. –

관련 문제