Symfony 2 не найден маршрут для «Get /»
-
25-10-2019 - |
Вопрос
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. Надеюсь, я отвечу на ваш вопрос.