Панель инструментов Symfony для веб-отладки
Когда я навещаю http://localhost/web/app_dev.php
, я получаю очень приятную панель инструментов веб-отладки, но она не отображается в представлениях, отображаемых "пользовательскими" контроллерами.
Что делать, чтобы панель инструментов отладки отображалась в представлениях, отображаемых контроллерами?
Вот пример контроллера, который я использую
namespace SD\BlogBundle\Controller;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
class ContactsController extends Controller
{
public function indexAction()
{
$data = 'Lorem ipsum';
return $this->render('SDBlogBundle:Default:index.html.twig', array('data' => $data));
}
}
Ответы
Ответ 1
Панель инструментов вставляет себя в страницы, ища завершающий </body> тег на сгенерированной странице.
Если у вас нет </body> тег на вашей странице, панель инструментов не появится.
Вам также необходимо убедиться, что вы используете режим dev, обратившись к странице через app_dev.php, например.
http://example.com/app_dev.php/hello/world
Ответ 2
Если он не отображается в "настраиваемых" контроллерах, как вы сказали, но появляется в других, у вас, вероятно, есть недопустимый html-код.
Symfony2 показывает только панель инструментов, если ваш контроллер отображает HTML. Если он недействителен, он не может знать его HTML.
Причина. Если ваш контроллер возвращает какой-то другой тип (например, XML или JSON), добавление панели инструментов будет не просто бесполезным, но и сломать материал.
Решение: Проверьте код html и исправьте ошибки в нем, появится панель инструментов
Ответ 3
Чтобы панель инструментов отладки Symfony2 отображалась в ваших визуализированных представлениях, вы должны пройти через фронт-контроллер, соответствующий среде, в которой включена панель инструментов.
Если вы используете стандартный дистрибутив, по умолчанию включена только среда "dev". Поэтому вы должны использовать фронт-контроллер app_dev.php
.
Ответ 4
для меня проблема заключалась в том, что у меня был метатег, указывающий на мою среду prod.
то в шаблоне:: base.html.twig в dev
<!--<base href="#" onclick="location.href='http://www.exemple.com'; return false;" />-->
в prod:
<base href="#" onclick="location.href='http://www.exemple.com'; return false;" />