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
Ответы
Ответ 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. Надеюсь, я отвечу на ваш вопрос.