304: Не кэширование измененного и фронтэнда

скопление создает блокировки файла стиля Unix и доступно на Perl большей части ОС, работает. Однако блокировки скопления являются консультацией только.

редактирование: подчеркнутый, что скопление портативно

14
задан Boaz 8 June 2013 в 19:03
поделиться

2 ответа

HTTP_IF_MODIFIED_SINCE - правильный способ сделать это. Если вы его не получаете, убедитесь, что в Apache включены mod_expires и mod_headers и они работают правильно. Заимствовано из комментария на PHP.net :

$last_modified_time = filemtime($file); 
$etag = md5_file($file);
// always send headers
header("Last-Modified: ".gmdate("D, d M Y H:i:s", $last_modified_time)." GMT"); 
header("Etag: $etag"); 
// exit if not modified
if (@strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) == $last_modified_time || 
    @trim($_SERVER['HTTP_IF_NONE_MATCH']) == $etag) { 
    header("HTTP/1.1 304 Not Modified"); 
    exit; 
}

// output data
26
ответ дан 1 December 2019 в 10:03
поделиться

$ _ SERVER ['HTTP_IF_MODIFIED_SINCE'] обычно пуст, когда register_globals выключен.

Проверьте, так ли это, и если да, попробуйте getenv ('HTTP_IF_MODIFIED_SINCE')

0
ответ дан 1 December 2019 в 10:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: