내 CSS 파일은 콘텐츠 유형 text/css
과 함께 제공되는 PHP 파일이므로 해당 파일에서 PHP 변수를 사용할 수 있습니다. style.php
은 다음과 같습니다동적 CSS (PHP를 통해 생성) 용 캐시 헤더
<?php
header('Content-Type: text/css');
$bgColor = '#000';
?>
body { background:<?php print $bgColor; ?>; }
예상대로 작동하지만, 브라우저가 동적으로 생성 된 CSS 파일을 캐시 만약 내가 조금 걱정입니다.
firebug에서 요청을 볼 때 페이지를 새로 고침 할 때마다 브라우저가 새로로드 될 것 같습니다. style.php
이미 이러한 캐시 헤더를 추가하려고 :
header('Cache-control: must-revalidate');
header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 60 * 60 * 24) . ' GMT');
하지만 행운을. 페이지가로드 될 때마다 파일이 계속로드됩니다. 브라우저가 특정 시간 동안 파일을 캐시하도록하려면 적절한 헤더는 무엇입니까? 당신이 파일을 브라우저 캐시하려는 경우, 당신은 대중에게 Cache-Control 헤더를 설정해야합니다
는 HTTP/1.1 사양에 따르면, 그-검증이 있어야합니다 뜻 무엇 아니다 - 캐시 된 내용이 부실해질 후이 만료의 지시에 따라이 단지 (킥하기로했다 헤더 또는 Cache-Control 내의 최대 사용 기간 값)을 사용하지만 일부 브라우저는 사양을 무시하고 요청을 보내는 것으로 보입니다. 연결이 인증되지 않는 한 '공개'는 실제로 적용 할 수 없습니다. Expires 헤더의 시간을 강화하기 위해 'Cache-Control : max-age = 86400'을 사용합니다. –
@Brock Batsell : 댓글 주셔서 감사합니다! 그걸 명확히하고 최대 작동 = XXXX – Max
파일 내용이 변경되면 요청한 파일이 업데이트되지 않습니다. OP는 콘텐츠가 변경된 경우 파일을 캐시해서는 안됩니다. 파일 내용이 변경되지 않은 경우 캐싱해야합니다. 제공 한 코드가 "캐싱"기능을 사용합니다. 그것은 OP 문제를 해결하지 못합니다. –