2014-11-18 6 views
0

PDF 파일에 링크 된 HTML 문서가 있었기 때문에 웹 페이지를 관리하고 있습니다. PDF 파일은 수시로 업데이트되지만 파일 이름은 변경하지 않으려합니다. 즉, 사용자는 파일의 캐시 된 오래된 사본을 가져 와서 파일을 수동으로 새로 고쳐 최신 파일을 가져와야합니다. 올바른 캐싱을 얻기 위해 URL 다음에 파일 또는 해시 추가

나는 링크에 다음 코드를 추가 :

onClick="this.href=this.href.split('?')[0]+'?'+new Date().getTime()"> 

이 문제는 사용자가 이전 파일을 가지고 있었다 해결,하지만 문제는 사용자들이 업데이트되지 않은 경우에도 PDF 파일을로드해야했다 소개했다. 이로 인해 더 많은 서버로드가 발생하고 사용자의 대기 시간이 길어집니다. 스크립트가 해시 또는 대상 파일의 파일 크기를 확인하고이를 questionmark 뒤에 URL에 추가하면 비슷한 코드를 얻을 수 있습니까? 이것이 가능한 경우 모든 문제를 극복 할 것입니다.

+0

이 페이지는 어떻게 게재됩니까? 서버 측에서이 처리를 수행하여 올바른 링크가 포함 된 페이지를 보낼 수 있습니다. 또한이 경우 캐시를 제어하는 ​​데 'ETag'를 사용할 수 있습니다. –

+1

페이지를 작성할 때 파일의 서버 측 mtime을 url에 넣습니다. 그러면 파일이 실제로 수정 될 때만 타임 스탬프 매개 변수가 변경됩니다. –

+0

몇 가지 구체적인 코드 예제를 정말 고맙게 생각합니다. 저는 개발자가 아니며 코드 복사 단계에 있습니다. – OKaij

답변

0

어디서 접속했는지 모르지만 PHP를 사용할 수 있다고 가정합니다.

그래서 md5 (md5_file()에 의해 생성됨)를 매개 변수로 문자열에 추가해야합니다. 매개 변수는 새 pdf를 업로드하는 경우에만 변경되며 (mtime()은 같은 효과를 갖습니다)