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
(совсем не рекомендуется, но... хорошо...)