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
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
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
Ce travail pour moi:
cache:clear --env=prod
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
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');
}
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 }
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.