web-dev-qa-db-fra.com

symfony 2 Aucun itinéraire trouvé pour "GET /"

Symfony2 ne renvoie aucune route trouvée pour "GET /" lorsque j'essaie d'exécuter http: //localhost/app_dev.php , mais cette URL fonctionne: http: //localhost/app_dev.php/hello/Symfony . J'ai supprimé AcmeDemoBundle et j'essaie de lancer un exemple d'offre à partir d'un tutoriel symfony2. Qu'est-ce qui ne va pas ?

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/Ressources/config/routing.yml:

ShopMyShopBundle_homepage:
pattern:  /hello/{name}
defaults: { _controller: ShopMyShopBundle:Main:index }
requirements:
    _method:  GET
21
user1052836

Le problème est que vous n'avez pas de route pour /. Changez votre définition en ceci:

ShopMyShopBundle_homepage:
    pattern:  /
    defaults: { _controller: ShopMyShopBundle:Main:index }
    requirements:
        _method:  GET
20

Les réponses ci-dessus sont incorrectes et ne vous expliquent pas pourquoi vous rencontrez des problèmes pour visualiser le mode prod de contenu de démonstration. 

Voici la réponse correcte: effacez votre cache "prod":

php app/console cache:clear --env prod
10
bacbos

Ce travail pour moi:

cache:clear --env=prod
5
lucian0308

Utiliser symfony 2.3 avec php 5.5 et utiliser le serveur intégré avec 

app/console server:run

qui devrait produire quelque chose comme:

Server running on http://127.0.0.1:8000
Quit the server with CONTROL-C.

puis allez à http://127.0.0.1:8000/app_dev.php/app/example

cela devrait vous donner la valeur par défaut, ce qui vous permet également de trouver la route par défaut en affichant src/AppBundle/Controller/DefaultController.php

3
user3610279

j'aurais pu être le seul à avoir commis cette erreur, mais peut-être pas, alors je vais poster.

le format pour les annotations dans les commentaires avant qu'une route ne commence par une barre oblique et deux astérisques. Je faisais l'erreur d'une barre oblique et d'un seul astérisque, que PHPStorm a complété automatiquement.

mon itinéraire ressemblait à ceci:

/*
 * @Route("/",name="homepage")
 */
public function indexAction(Request $request) {
    return $this->render('default/index.html.twig');
}

quand cela aurait dû être cela

/**
 * @Route("/",name="homepage")
 */
public function indexAction(Request $request) {
    return $this->render('default/base.html.twig');
}
1
georgiecasey

Préfixe est le préfixe pour le routage d'URL. Si c'est égal à '/' cela signifie qu'il n'aura pas de préfixe. Ensuite, vous avez défini un itinéraire avec le motif "il devrait commencer par/bonjour".

Pour créer un itinéraire pour '/', vous devez ajouter ces lignes dans votre src/Shop/MyShopBundle/Resources/config/routing.yml:

ShopMyShopBundle_homepage:
    pattern:  /
    defaults: { _controller: ShopMyShopBundle:Main:index }
1
meze

J'ai aussi essayé cette erreur, je l'ai bien compris en ajoutant simplement/bonjour/n'importe quel nom car c'est le chemin qui doit contenir un bonjour/nom

exemple: au lieu de mettre http: //localhost/app_dev.php

mettre comme ça http: //localhost/nom_de_votre_projet/web/app_dev.php/hello/ai

il affichera Bonjour Ai. J'espère que je réponds à votre question.

0
aiai