Кэшируйте изображения / js / css никогда не HTML контент - PullRequest
1 голос
/ 31 декабря 2011

Я ищу способ заголовка PHP () для кэширования изображений, но никогда не HTML-содержимого вывода php.На данный момент я использую эти строки в моем файле .htaccess:

<filesMatch "\.(ico|gif|jpg|jpeg|png|flv|avi|mov|mp4|mpeg|mpg|mp3|pdf|doc|css|js|html|bmp|js|css)$">
  Header set Cache-Control "max-age=86400000"
</filesMatch>

И я не делаю никаких заголовков.

Я бы предпочел посылать заголовки, подобные этим, вверхумои php файлы, поэтому я попробовал это:

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-cache");
header("Cache-Control: post-check=0, pre-check=0");
header("Pragma: no-cache");

Но с этими функциями заголовка изображения не кэшируются в браузерах, если я закрываю браузер и возвращаюсь на сайт.Что мне нужно отправлять в браузеры для кэширования изображений, но не содержимого HTML?

РЕДАКТИРОВАТЬ: Извините, но я проверил еще раз, и я чувствую, что этих функций заголовка достаточно для создания кэша изображений браузераа не содержание html.

1 Ответ

0 голосов
/ 31 декабря 2011

одним из вариантов может быть загрузка изображений из выделенного файла php:

header('Content-Type: image/png');
header('Cache-control: private');
$img = imagecreatefrompng("example.png");
imagepng($img);
imagedestroy($img);

, чтобы сохранить отдельный файл php для каждого, вы можете передать имя файла в uri.например, путь к изображению будет тогда image.php? filename = example.png с использованием $ _GET ['filename'] в скрипте php.

* Я не уверен, что Cache-control: private будетдействительно необходимо, но я включил это, как мы надеемся, полезный совет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...