웹사이트의 응답 시간을 단축하기 위해 캐싱을 사용하려고 합니다. 내가 읽은 대부분의 문서에서는 다음과 같이 액세스 시점으로부터 만료일을 +1개월로 설정하도록 제안합니다.
ExpiresActive On
ExpiresByType text/css "access plus 1 month"
CSS 파일을 업데이트하면 클라이언트가 업데이트된 파일을 얻지 못할까 봐 걱정됩니다.
파일이 수정된 경우 클라이언트가 새 버전의 파일을 다운로드하도록 할 수 있습니까?
도움을 많이 주셔서 감사합니다.
답변1
귀하의 우려는 맞습니다. 브라우저에서 파일을 검색한 클라이언트는 브라우저 캐시를 지우거나 페이지를 다시 로드하지 않는 한 일반적으로 파일에 액세스한 후 1개월이 될 때까지 업데이트된 버전을 받지 못합니다.
이 문제를 해결하는 한 가지 방법은 CSS 파일을 업데이트할 때 이를 참조하는 HTML을 변경하여 링크 태그의 href 속성 끝(즉, .css 뒤)에 ?v=2 또는 ?v=3 등을 두는 것입니다. 브라우저는 이를 고유한 URL로 보고 새 복사본을 다운로드하지만 서버에 있는 동일한 실제 .css 파일을 가리킵니다.
<link rel="stylesheet" type="text/css" href="/styles.css" />
된다
<link rel="stylesheet" type="text/css" href="/styles.css?v=2" />