Кеш всегда возвращает 200

Это моя функция контроллера

/**
* @Route(
*     path     = "/",
*     defaults = {"page": "1"},
*     name     = "products_show"
* )
* @Route(
*     path         = "/page/{page}",
*     requirements = {"page": "[1-9]\d*"},
*     name         = "products_show_by_page"
* )
* @Method("GET")
* @Cache(smaxage = "1800", public = true)
*/
public function showProducts(Request $request, int $page, PaginatorInterface $paginator, ProductRepository $products)
{
    $searchQuery = $request->query->get('q', '');
    $query = $products->findOrSearchAllJoinedToCategory($searchQuery);

    $pagination = $paginator->paginate($query, $page, Product::NUM_ITEMS);
    $pagination->setUsedRoute('products_show_by_page');

    return $this->render('product/products_show.html.twig', [
        'pagination'  => $pagination,
        'page'        => $page,
        'searchQuery' => $searchQuery
    ]);
}

и я добавил пустой KernelCache.php и внес изменения в index.php. Видеть https://symfony.com/doc/current/http_cache.html#symfony-reverse-proxy и установите для APP_ENV значение prod в .env

Но после этих изменений я все равно получаю ответ 200, а не ответ 304. Есть ли дополнительные задачи? (У меня есть простая система разработки Xamp и я тестирую ее с помощью Firefox)

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
0
287
1

Ответы 1

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

Другие вопросы по теме