Есть такая php-страница:
<? php
if (file_exists(__DIR__.'/cache/exp.cache'))
{
readfile(__DIR__.'/cache/exp.cache');
exit();
}
ob_start();
?>
<!doctype html>
<html> .............// тут html-код...</html>
<?php
$buffer = ob_get_contents();
$fp = fopen(__DIR__.'/cache/exp.cache', 'w');
fwrite($fp, $buffer);
ob_end_flush();
fclose($fp);
?>
Этот код, вроде бы, должен:
1) проверять, есть ли страница exp.cache в директории cache,
2) если есть, то загружать ее из этой папки cache,
3) если нет, то формировать страницу из кода, который следует далее.
Но почему-то из этого файла /cache/exp.cache страница не загружается. Или загружается от случая к случаю. Несмотря на то, что она существует, в браузере я зачастую получаю 404, если предварительно очистила кэш браузера.
А иногда нормально загружается.
Подскажите, что я сделала неправильно? Сервер - Apache
Я хочу, чтобы данные из БД, которые идут далее на этой странице, формировались только 1 раз для первого посетителя за период. А все последующие пользователи получали страницу из кэша сервера. Спасибо!
P.S. В журнале ошибок на хостинге вижу вот что:
2019/03/13 00:22:39 [warn] 2303163#2303163: *10757694 an upstream response is buffered to a temporary file /var/cache/nginx/proxy_temp/5/71/0000002715 while reading upstream, client: 32.140.71.229, server: site.ru, request: "GET /exp.php HTTP/2.0", upstream: "http://127.0.0.1:8080/exp.php", host: "site.ru"
Меня крайне смущает это: nginx при том, что сервер-то на хостинге apache.
В общем, я слегка лоханулась, пытаясь определить, откуда загружается страница: из кэша сервера или из файловой директории сервера.
Меня вел в заблуждение джентльменский набор из кэша сервера + кэша браузера.
Отключила кэш браузера по совету Total Pusher + изменила title страницы exp.php И к счастью своему вижу в браузере старый title, то есть, загружаемый из кэша сервера.
То есть именно тот результат, который мне нужен. Спасибо!
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости