Symfony2 и производственная среда - всегда отображает app_dev в ссылках

У меня есть проект symfony2, работающий с nginx, и проблема в том, что при доступе к среде prod все ссылки все еще находятся там с app_dev.php.

Вот мои файлы конфигурации:

app.php

<?php

require_once __DIR__.'/../app/bootstrap.php.cache';
require_once __DIR__.'/../app/AppKernel.php';

use Symfony\Component\HttpFoundation\Request;

$kernel = new AppKernel('prod', false);
$kernel->loadClassCache();
$kernel->handle(Request::createFromGlobals())->send(); 

Ссылки в файле ветки называются так:

Имя маршрута: user_login, в ветке: user_login_path()

Откуда может возникнуть проблема? Nginx?

1 ответ

Решение

Вы должны всегда использовать path('route_name') для того, чтобы генерировать ссылки или действия. Похоже, что функция (и), которую вы используете (своего рода расширение ветки), плохо закодирована и зависит от сервера. Но это не идет с самой Symfony.

У вас есть несколько вариантов:

  • Самый чистый: заменить каждый href, action... с path функция
  • А (может быть, быстрее): найдите расширение собственной ветки и заставьте его работать (более вероятно, в src/Acme/MyBundle/Twig/MyExtension.php)
  • Быстрый и грязный: переписать каждый app_dev.php URL для app.dev с .htaccess (совсем не рекомендуется, но... хорошо...)
Другие вопросы по тегам