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
Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top