request.ERROR: Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException: Aucune route trouvée pour "GET /"

J'ai installé Symfony2, après avoir réparé les permissions de file, je peux accéder à l'environnement dev à partir de mon browser en le signalant:

http://localhost/app_dev.php

Cependant, lorsque j'essaie d'accéder à l'environnement de production en pointant le browser vers http://localhost , j'ai l'exception suivante (à partir de l'application / logs / prod.log):

[2012-08-13 11:30:03] request.ERROR: Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException: Aucune route trouvée pour "GET /" (excoption non saisie) dans / path / to / frameworks / Symfony2 / application /cache/prod/classs.php line 4584 [] []

J'ai alors vérifié les routes disponibles pour l'environnement prod à partir de la command line. C'est le résultat de cette enquête.

root @ yourbox: ~ / path / to / frameworks / Symfony2 $ php app / console routeur: debug -e = prod [routeur] Lignes courantes Nom Méthode Modèle

Incroyablement, il montre qu'il n'y a pas de lignes définies pour cet environnement (je ne croyais pas le message d'erreur – qui a essentiellement dit la même chose).

Donc, ma conclusion est la suivante: l'installation hors ligne de Symfony2, et l'environnement de production n'a pas d'routes par défaut – est-ce vrai, ou est-ce que j'ai fait une erreur quelque part?

Plus important encore, comment puis-je résoudre cela? Dans SF1.x, il était simple de passer de dev à prod et vice versa. Comment afficher l'application AcmeDemo par exemple, dans un environnement de produit. ?

[[METTRE À JOUR]]

Après avoir répondu de l'information sur le chat , j'ai ajouté une route de test simple à mon file routing.yml. Le contenu de app / config / routing.yml est maintenant:

 _welcome2: pattern: /test defaults: { _controller: AcmeDemoBundle:Welcome:index } 

Lorsque j'essaie http://localhost/test dans le browser, j'ai la même erreur 404. Lorsque je débogue les routes disponibles sur la console, j'obtiens la sortie suivante:

 root@yourbox:~/path/to/frameworks/Symfony2$ php app/console router:debug -e=prod [router] Current routes Name Method Pattern _welcome2 ANY /test 

J'ai eu exactement le même problème!

Symfony2 dispose de deux files de routing generics appelés:

 app/config/routing.yml and app/config/routing_dev.yml 

Cependant, il dispose également d'un file de routing spécifique au package dans chaque lot. La procédure standard consiste à définir l'set de vos routes de packages dans votre file de routing.yml, puis le referencer à partir du file principal de routing.yml en ajoutant:

 YourbundlenameMainBundle: resource: "@YourbundlenameMainBundle/Resources/config/routing.yml" prefix: / 

C'est ce que j'avais et j'avais encore l'erreur. Mais alors, j'ai lu l'erreur de façon plus approfondie … Aucune route trouvée pour GET / …. alors j'ai vérifié mon file routing_dev.yml et bien sûr, il avait un itinéraire pour / depuis le path de démonstration Acme _welcome route. C'est pourquoi il fonctionne pour la version dev, mais pas la version prod!

Solution:

Ajoutez un itinéraire pour / vers votre file global routing.yml ou votre file bundle routing.yml en ajoutant ce qui suit:

 _welcome: pattern: / defaults: { _controller: YourbundlenameMainBundle:Default:index } 

vous pouvez modifier l'index sur un autre itinéraire si votre page d'accueil n'est pas indexée

J'ai eu exactement le même problème. Et il a été causé à cause d'un bundel manquant dans AppKernel.php.

Un peu en retard, mais vous pouvez essayer de changer cette ligne sur le Web / app.php: $ kernel = new AppKernel ('prod', false); à: $ kernel = new AppKernel ('prod', true);

Cela permettra de déboguer et vous devriez pouvoir find votre problème. Lorsque vous avez été réparé, vous devrez le modifier à faux;).

J'espère que cela t'aides.

Après avoir vérifié que votre itinéraire est défini dans l'un de vos routing.yml

 _welcome: pattern: / defaults: { _controller: YourbundlenameMainBundle:Default:index } 

nettoyez votre cache d'environnement prod!

 app/console cache:clear --env=prod