symfony 2 Не найден маршрут для "GET /" - PullRequest
21 голосов
/ 29 ноября 2011

Возврат Symfony2 Не найден маршрут для «GET /» при попытке запустить http://localhost/app_dev.php,, но этот URL работает: http://localhost/app_dev.php/hello/Symfony. Я удалил AcmeDemoBundle и пытаюсь запустить пример пакета из Symfony2 учебник. Что не так?

app / config / routing.yml:

ShopMyShopBundle:
resource: "@ShopMyShopBundle/Resources/config/routing.yml"
prefix:   /

app / config / routing_dev.yml:

_assetic:
resource: .
type:     assetic

_wdt:
resource: "@WebProfilerBundle/Resources/config/routing/wdt.xml"
prefix:   /_wdt

_profiler:
resource: "@WebProfilerBundle/Resources/config/routing/profiler.xml"
prefix:   /_profiler

_configurator:
resource: "@SensioDistributionBundle/Resources/config/routing/webconfigurator.xml"
prefix:   /_configurator

_main:
resource: routing.yml

src / Shop / MyShopBundle / Resources / config / routing.yml:

ShopMyShopBundle_homepage:
pattern:  /hello/{name}
defaults: { _controller: ShopMyShopBundle:Main:index }
requirements:
    _method:  GET

Ответы [ 7 ]

20 голосов
/ 29 ноября 2011

Проблема в том, что у вас нет маршрута для /.Измените свое определение на это:

ShopMyShopBundle_homepage:
    pattern:  /
    defaults: { _controller: ShopMyShopBundle:Main:index }
    requirements:
        _method:  GET
10 голосов
/ 26 февраля 2013

Приведенные выше ответы неверны, соответственно не отвечают, почему у вас возникают проблемы при просмотре демо-контента в режиме prod-mode.

Вот правильный ответ: очистите кэш "prod":

php app/console cache:clear --env prod
5 голосов
/ 04 мая 2013

Эта работа для меня:

cache:clear --env=prod
3 голосов
/ 21 июня 2015

Использование symfony 2.3 с php 5.5 и использование встроенного сервера с

app/console server:run

который должен вывести что-то вроде:

Server running on http://127.0.0.1:8000
Quit the server with CONTROL-C.

затем перейдите к http://127.0.0.1:8000/app_dev.php/app/example

это должно дать вам значение по умолчанию, которое вы также можете найти по умолчанию, просмотрев src / AppBundle / Controller / DefaultController.php

1 голос
/ 22 мая 2017

я мог бы быть только тем, кто допустил эту ошибку, но, возможно, нет, поэтому я опубликую.

формат для комментариев в комментариях, прежде чем маршрут должен начинаться с косой чертыи две звездочки.я совершил ошибку с косой чертой и единственной звездочкой, которую PHPStorm автоматически завершил.

мой маршрут выглядел так:

/*
 * @Route("/",name="homepage")
 */
public function indexAction(Request $request) {
    return $this->render('default/index.html.twig');
}

, когда это должно было быть

/**
 * @Route("/",name="homepage")
 */
public function indexAction(Request $request) {
    return $this->render('default/base.html.twig');
}
1 голос
/ 29 ноября 2011

Префикс - это префикс для маршрутизации URL. Если он равен «/», это означает, что у него не будет префикса. Затем вы определили маршрут с шаблоном "он должен начинаться с /hello".

Чтобы создать маршрут для '/', вам нужно добавить эти строки в ваш src / Shop / MyShopBundle / Resources / config / routing.yml:

ShopMyShopBundle_homepage:
    pattern:  /
    defaults: { _controller: ShopMyShopBundle:Main:index }
0 голосов
/ 28 апреля 2015

Я также пробовал эту ошибку, я правильно понял, просто добавив / hello / any name, потому что это путь, по которому должен быть hello / name

пример: вместо того, чтобы просто ставить http://localhost/app_dev.php

скажем так http://localhost/name_of_your_project/web/app_dev.php/hello/ai

отобразится Hello Ai. Надеюсь, я отвечу на ваш вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...