symfony 2 Aucun itinéraire trouvé pour « GET / »
-
25-10-2019 - |
Question
Symfony2 retourne Aucun itinéraire trouvé pour "GET /" lorsque je tente de lancer http: //localhost/app_dev.php , mais url fonctionne: http: //localhost/app_dev.php/hello/Symfony . J'ai enlevé AcmeDemoBundle et je suis en train d'exécuter un faisceau d'exemple à partir d'un tutoriel Symfony2. Quel est le problème?
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 / boutique / MyShopBundle / Ressources / config / routing.yml:
ShopMyShopBundle_homepage:
pattern: /hello/{name}
defaults: { _controller: ShopMyShopBundle:Main:index }
requirements:
_method: GET
La solution
Le problème est que vous ne disposez pas d'un itinéraire pour /
. Modifiez votre définition à ceci:
ShopMyShopBundle_homepage:
pattern: /
defaults: { _controller: ShopMyShopBundle:Main:index }
requirements:
_method: GET
Autres conseils
Les réponses ci-dessus sont fausses, respectivement ne répondent pas pourquoi vous éprouvez des difficultés pour afficher la démo contenu prod mode.
Voici la réponse: effacer votre "prod" -cache:
php app/console cache:clear --env prod
Ce travail pour moi:
cache:clear --env=prod
En utilisant symfony 2.3 avec php 5.5 et en utilisant le construit dans le serveur avec
app/console server:run
qui devrait quelque chose de sortie comme:
Server running on http://127.0.0.1:8000
Quit the server with CONTROL-C.
puis passez à http://127.0.0.1:8000/app_dev.php/app / exemple
cela devrait vous donner la valeur par défaut, que vous pouvez également trouver la route par défaut en visualisant src / AppBundle / contrôleur / DefaultController.php
préfixe est le préfixe pour le routage d'URL. Si elle est égal à « / » cela signifie qu'il aura aucun préfixe. Ensuite, vous avez défini un itinéraire avec motif «il doit commencer par / bonjour ».
Pour créer un itinéraire pour '/' vous devez ajouter ces lignes dans votre src / boutique / MyShopBundle / Ressources / config / routing.yml:
ShopMyShopBundle_homepage:
pattern: /
defaults: { _controller: ShopMyShopBundle:Main:index }
i aurait pu être un seul qui a fait cette erreur, mais peut-être pas si je vais poster.
le format pour les annotations dans les commentaires avant une route doit commencer par un slash et deux astérisques . je faisais l'erreur d'une barre oblique et une seule étoile, qui PHPStorm autocompleted.
ma route ressemblait à ceci:
/*
* @Route("/",name="homepage")
*/
public function indexAction(Request $request) {
return $this->render('default/index.html.twig');
}
quand il aurait dû être cette
/**
* @Route("/",name="homepage")
*/
public function indexAction(Request $request) {
return $this->render('default/base.html.twig');
}
J'ai aussi essayé cette erreur, je l'ai droit en ajoutant simplement / bonjour / ne importe quel nom parce qu'il est le chemin qu'il doit y avoir un bonjour / nom
exemple: au lieu de simplement mettre http: //localhost/app_dev.php
le formulons cette façon http: //localhost/name_of_your_project/web/app_dev.php / bonjour / ai
il affiche Bonjour Ai. J'espère répondre à votre question.