2017-11-08 1 views
0

업데이트 후 캐시 된 이미지를 다시로드하려고합니다.
나는 아래와 같은 타임 스탬프를 생성 :업데이트 후 캐시 이미지 새로 고침

echo "<img src=../thumbnail.jpg?" . time() . ">"; 

그러나 여러 페이지에서이 이미지 쇼와 나는 모든 time()을 설정해야합니다. 이 time() 이미지의 url이 변경되므로 모든로드 그림이 아닌 것처럼로드됩니다.

내 이미지를 여러 사용자가 업데이트 할 수 있습니다. 새로 고침 할 때마다 모든 이미지 URL에 대해 time()을 설정하면 성능에 영향을줍니다.

답변

0

time()은 현재 시간을 반환하므로 페이지가로드 될 때마다 달라지며 원하는 것을 수행하지 않습니다.

프레임 워크에 정적 애셋을 버전 관리하는 시스템이있는 경우이를 사용해야합니다. 그렇지 않으면 당신은이 예에서와 같이 파일이 마지막으로 변경된시기에 대한 타임 스탬프를 반환 filemtime()을 사용할 수 있습니다 :

<img src="<?=$path?>?v=<?=filemtime($path)?>"> 

파일의 타임 스탬프가 변경 될 때 만 변경됩니다 그 방법을.

0

Grunt, Gulp 또는 다른 유사한 작업 주자를 사용하는 경우 이미지/해설을 참조하는 파일을 업데이트 할뿐만 아니라 이미지 내용의 해시를 파일 이름에 추가하는 작업을 추가 할 수 있습니다/JS/...

(당신은 또한 완전히 워크 플로우를 자동화하여 이미지를 최적화 할 수 있습니다.)

그런트-grunt-cache-bust

꿀꺽 - gulp-cachebust

관련 문제