Заголовок Cache-Control не работал для изображенийPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Заголовок Cache-Control не работал для изображений

Сообщение Anonymous »

У меня есть PHP-скрипт, который обрабатывает изображение по идентификатору:

Код: Выделить всё

function setCacheHeader($seconds = 86400)
{
$time = gmdate("D, d M Y H:i:s", time() + $seconds) . " GMT";
header("Expires: $time");
header("Pragma: cache");
header("Cache-Control: max-age=$seconds");
}

$file = "/xxx/xxx/" . intval($_GET['id']);

setCacheHeader();
header("Content-Type: image/jpg");
header("Content-Length: " . filesize($file));
И конфигурация nginx для перезаписи спокойного URL-адреса в этот скрипт:

Код: Выделить всё

location /images/ {
rewrite /images/(\d+) /images.php?id=$1 last;
}
Заголовок кэша отправлен правильно.
[img]https://i.sstatic. net/rjCD6.jpg[/img]

Но браузер не кэширует содержимое, я не видел ответа 304 при доступе к URL-адресу /images/ID , вместо этого он всегда возвращает 200. Я пробовал несколько раз, ничего не меняется.
Изображение

Что случилось?

Подробнее здесь: https://stackoverflow.com/questions/774 ... for-images
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»