Symfony 2 Keine Route für "get /" gefunden
-
25-10-2019 - |
Frage
Symfony2 gibt keine Route für "get /" zurück, wenn ich versuche zu rennen http: //localhost/app_dev.php, aber diese URL funktioniert: http: //localhost/app_dev.php/hello/symfony. Ich habe AcMedemobundle entfernt und versuche, ein Beispielpaket aus einem Symfony2 -Tutorial auszuführen. Was ist falsch ?
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/ressourcen/config/routing.yml:
ShopMyShopBundle_homepage:
pattern: /hello/{name}
defaults: { _controller: ShopMyShopBundle:Main:index }
requirements:
_method: GET
Lösung
Das Problem ist, dass Sie keine Route für haben /
. Ändern Sie Ihre Definition darauf:
ShopMyShopBundle_homepage:
pattern: /
defaults: { _controller: ShopMyShopBundle:Main:index }
requirements:
_method: GET
Andere Tipps
Die oben genannten Antworten sind falsch, wenn Sie nicht beantwortet, warum Sie Probleme haben, den Demo-In-Intensischen-Produkt anzusehen.
Hier ist die richtige Antwort: Löschen Sie Ihren "Prod" -Cache:
php app/console cache:clear --env prod
Diese Arbeit für mich:
cache:clear --env=prod
Verwenden von Symfony 2.3 mit PHP 5.5 und mit dem integrierten Server mit Verwendung
app/console server:run
was so etwas ausgeben sollte:
Server running on http://127.0.0.1:8000
Quit the server with CONTROL-C.
dann geh zu http://127.0.0.1:8000/app_dev.php/app/example
Dies sollte Ihnen die Standardeinstellung geben, die Sie auch die Standardroute finden können, indem Sie SRC/Appbundle/Controller/DefaultController.php anzeigen
Präfix ist das Präfix für URL -Routing. Wenn es '/' gleich ist, bedeutet es kein Präfix. Dann haben Sie eine Route mit dem Muster definiert "Es sollte mit /Hallo" beginnen.
Um eine Route für '/' zu erstellen, müssen Sie diese Zeilen in Ihr SRC/Shop/MyShopBundle/Ressourcen/config/routing.yml hinzufügen:
ShopMyShopBundle_homepage:
pattern: /
defaults: { _controller: ShopMyShopBundle:Main:index }
Ich hätte nur einer sein können, der diesen Fehler gemacht hat, aber vielleicht werde ich nicht so posten.
das Format für Anmerkungen in den Kommentaren, bevor eine Route mit einem Schrägstrich beginnen muss und zwei Sternchen. Ich machte den Fehler eines Schrägstrichs und nur eines Sternchens, was Phpstorm automatisch vervollständigte.
Meine Route sah so aus:
/*
* @Route("/",name="homepage")
*/
public function indexAction(Request $request) {
return $this->render('default/index.html.twig');
}
Wenn es dies hätte sein sollen
/**
* @Route("/",name="homepage")
*/
public function indexAction(Request $request) {
return $this->render('default/base.html.twig');
}
Ich habe auch diesen Fehler ausprobiert, ich habe es richtig gemacht, indem ich nur/Hallo/einen Namen hinzugefügt habe, weil es einen Pfad ist, dass es einen Hallo/Namen geben muss
Beispiel: Anstatt nur zu setzen http: //localhost/app_dev.php
Setzen Sie es so aus http: //localhost/name_of_your_project/web/app_dev.php/hello/ai
Es wird Hallo Ai anzeigen. Ich hoffe, ich beantworte Ihre Frage.