Страница из кэша сервера не отдается браузерам

113
26 ноября 2019, 14:40

Есть такая 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.

Answer 1

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

Меня вел в заблуждение джентльменский набор из кэша сервера + кэша браузера.

Отключила кэш браузера по совету Total Pusher + изменила title страницы exp.php И к счастью своему вижу в браузере старый title, то есть, загружаемый из кэша сервера.

То есть именно тот результат, который мне нужен. Спасибо!

READ ALSO
Обращение к свойству объекта в php

Обращение к свойству объекта в php

Как обратиться к свойству объекта которое имеет в начале знак $? Пробовал:

93
PHP Найти значение в файле и удалить строки

PHP Найти значение в файле и удалить строки

Пытаюсь упростить задачу по удалению инфы из конфигаВ конфиге есть записи типа -

111
Как убрать ссылки из php виджета

Как убрать ссылки из php виджета

Вот код php виджетаВ виджете все добавленные картинки становятся со ссылками, подскажите, пожалуйста, как убрать автоматические ссылки? Конечно...

90