Вопрос

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
Это было полезно?

Решение

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

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

Другие советы

Приведенные выше ответы неверны, соответственно, не отвечают, почему у вас проблемы с просмотром демонстрационного режима.

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

php app/console cache:clear --env prod

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

cache:clear --env=prod

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

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

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

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

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

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

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

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

Поместить это так http: //localhost/name_of_your_project/web/app_dev.php/hello/ai

Это будет отображать Hello AI. Надеюсь, я отвечу на ваш вопрос.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top