проблемы с маршрутизацией в symfony

Я создаю сайт, используя symfony php framework.

У меня есть ссылка на моей странице, которая ведет на страницу X:

<a href="/X">test</a>

ну, проблема в том, что в моей среде разработки ссылка работает, и ссылка указывает на

http://localhost/web/frontend_dev.php/X

но когда я использую производственную страницу (index.php), ссылка указывает на:

http://localhost/web/X

когда он должен указывать на:

http://localhost/index.php/X

есть идеи в чем проблема?

Благодарность!


person hubert    schedule 03.11.2009    source источник


Ответы (1)


Каждая ссылка в шаблоне Symfony должна быть сгенерирована вспомогательной функцией link_to() или url_for(): http://www.symfony-project.org/book/1_2/07-Inside-the-View-Layer

frontend_dev.php — версия фронт-контроллера в разработке. Если вы обращаетесь к странице через этот контроллер (http://localhost/frontend_dev.php/testmodule/testaction), все ссылки будут обрабатываться этим контроллером. Если вы будете вызывать свой сайт через производственный контроллер (index.php, по умолчанию), все ссылки будут указывать через него: (http://localhost/testmodule/testaction): http://www.symfony-project.org/book/1_2/06-Inside-the-Controller-Layer

Также у вас неправильная верстка сайта. На сайте не должно быть подпапок "web". Библиотеки Symfony должны быть помещены в недоступную для браузера область. Вы должны перечитать документацию Symfony еще раз. И изучите этот обучающий проект: http://www.symfony-project.org/jobeet/1_2/Doctrine/en/

person Vladislav Rastrusny    schedule 03.11.2009
comment
Просто немного поясню: файлы frontend_dev.php и index.php не являются контроллерами. Это разные точки входа в две разные среды (dev и prod) в одно и то же приложение (frontend). Контроллеры — это совсем другое. - person phidah; 03.11.2009