Подтвердить что ты не робот

Symfony 2 Не найдено маршрутов для "GET/"

Возврат 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/Магазин/MyShopBundle/Resources/config/routing.yml:

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

Ответ 1

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

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

Ответ 2

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

Вот правильный ответ: очистите свой "prod" -cache:

php app/console cache:clear --env prod

Ответ 3

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

cache:clear --env=prod

Ответ 4

Использование 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

Ответ 5

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

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

ShopMyShopBundle_homepage:
    pattern:  /
    defaults: { _controller: ShopMyShopBundle:Main:index }

Ответ 6

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

формат аннотаций в комментариях, прежде чем маршрут начнется с косой черты и двух звездочек. я делал ошибку косой черты и только одну звездочку, которую автоматически запустил 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');
}

Ответ 7

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

example: вместо простого размещения http://localhost/app_dev.php

сделайте это так http://localhost/name_of_your_project/web/app_dev.php/hello/ai

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