클라이언트가 PHP 또는 서버 환경에서 페이지를 캐시했는지 여부는 쉽게 알 수 없습니다. 그러나 캐시 할 것인지 또는 얼마나 오래 할 것인지에 대해 브라우저에 조언 할 수 있습니다. 이는 Cache-Control HTTP 헤더 (및 친구)를 설정하여 수행 할 수 있습니다. this page을 참조하십시오. 대부분의 사람들은 앞으로 몇 시간 동안 캐싱을 지정하는 경향이 있으므로 사용자는 오래된 데이터가 2 시간 이상 표시되지 않습니다. 이 방법을 권하고 싶지만 브라우저가 효율적으로 캐싱을 해제하도록 지시 할 수도 있습니다. 어쨌든, 제 생각에는 가장 간단한 해결책은 .htaccess 파일에이 헤더를 설정하는 것입니다.
여기에 2 시간 시간 제한 예입니다 :
# Cache CSS and JS files for up to 2 hours
<FilesMatch "\.(css|js)$">
<IfModule mod_headers.c>
# Set Max-age to 7200 seconds (2 hours), revalidate after 2 hours (ask the server if the file's changed)
Header set Cache-Control "max-age=7200, must-revalidate"
</IfModule>
FileETag MTime Size
</FilesMatch>
또 다른 옵션은 캐싱을 허용하지만, 아무것도 모든 요청에 변경된 경우 서버를 요청하는 클라이언트를 강제하는 것입니다. 브라우저가 여전히 각 파일에 대해 서버에 왕복 요청을해야하므로 많은 css 및 js 파일 (일반적으로 드루팔 (Drupal)의 경우)을 제공하는 페이지에서 특히 큰 이점은 없습니다.
# Only use cache if checking with the server results in a 304 (Not Modified)
<FilesMatch "\.(css|js)$">
<IfModule mod_headers.c>
# Instruct the client and possibly proxies in front of the client to check for new versions every 0 seconds (always)
Header set Cache-Control "max-age=0, public, must-revalidate, proxy-revalidate"
# For older browsers
Header set Expires "Thu, 01 Jan 1970 00:00:00 GMT"
</IfModule>
FileETag MTime Size
</FilesMatch>
마지막으로 브라우저에서 캐싱을 사용하지 않도록 설정할 수 있습니다.
# Disable caching
<FilesMatch "\.(css|js)$">
<IfModule mod_headers.c>
Header set Cache-Control "no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0"
# For older browsers
Header set Expires "Thu, 01 Jan 1970 00:00:00 GMT"
</IfModule>
FileETag MTime Size
</FilesMatch>
이것은 내가 stackoverflow에서받은 최고의 답변입니다. 월요일에 먼저 시험해 보겠습니다. 고마워요! – prashn64
이 작업이 시작되었지만 머리글에 최대 연령 표시를 새로 고침해야한다는 것을 알게되었습니다. .htaccess 파일을 FilesMatch에 추가해야합니까? – prashn64
당신이 정확히 무엇을 말하고 있는지 이해한다면, 그렇게되어야합니다. 브라우저는 최대 연령 헤더 (및 파일)를 캐시하고 최대 사용 시간이 끝날 때까지 서버를 다시 확인하지 않습니다. 이전에 최대 연령을 설정하지 않았으므로 브라우저가 무한정 캐시되었으며 캐시를 지울 때까지 .htaccess에 대한 업데이트가 반영되지 않습니다. 말할 길이 멀다. 걱정 마라, 너는 바로하고있어! –