Заголовки в теле ответа при использовании Symfony ESI
Изучаю Symfony 6 по книге Фабиена Потенсьера "Symfony: The Fast Track". Добавляю, как описано в книге, контроллер для обработки подзапроса:
#[Route('/conference_header', name: 'conference_header')]
public function conferenceHeader(ConferenceRepository $conferenceRepository): Response
{
$response = new Response($this->render('conference/header.html.twig', [
'conferences' => $conferenceRepository->findAll(),
]));
return $response;
}
Затем создаю шаблон header.html.twig:
<ul>
{% for conference in conferences %}
<li><a href="{{ path('conference', { slug: conference.slug }) }}">{{ conference }}</a></li>
{% endfor %}
</ul>
И наконец, включаю обработку области в шаблоне страницы при помощи:
<header>
<h1><a href="{{ path('homepage') }}">Guestbook</a> </h1>
{{ render_esi(path('conference_header')) }}
</header>
В итоге, на целевой странице, перед сгенерированным списком выводятся еще и сами заголовки подзапроса:
<header>
<h1>...</h1>
HTTP/1.0 200 OK Cache-Control: no-cache, private Date: Mon, 25 Apr 2022 13:25:24 GMT
<ul>...</ul>
</header>
Как от них можно избавиться? В самой книге ничего такого не описывается, а в документации объяснение подобного поведения найти не удалось. Спасибо за помощь!
Ответы (1 шт):
Автор решения: Dmitry Kozlov
→ Ссылка
Так происходит, потому, что вы оборачиваете Response в еще один Response
$response = new Response($this->render(....
Поменяйте код на
public function conferenceHeader(ConferenceRepository $conferenceRepository): Response
{
$response = $this->render('conference/header.html.twig', [
'conferences' => $conferenceRepository->findAll(),
]);
return $response;
}