22 Stimmen

symfony 2 Keine Route für "GET /" gefunden

Symfony2 gibt für "GET /" keine Route gefunden zurück, wenn ich versuche, die http://localhost/app_dev.php aber diese Url funktioniert: http://localhost/app_dev.php/hello/Symfony . Ich habe AcmeDemoBundle entfernt und versuche, ein Beispiel-Bundle aus einem Symfony2-Tutorial auszuführen. Was ist falsch?

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

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

21voto

Elnur Abdurrakhimov Punkte 44147

Das Problem ist, dass Sie keine Route haben für / . Ändern Sie Ihre Definition in diese:

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

12voto

bacbos Punkte 226

Die obigen Antworten sind falsch bzw. beantworten nicht die Frage, warum Sie Probleme mit der Anzeige des Demo-Inhalts im Prod-Modus haben.

Hier ist die richtige Antwort: Löschen Sie Ihren "prod"-Cache:

php app/console cache:clear --env prod

5voto

lucian0308 Punkte 81

Das funktioniert bei mir:

cache:clear --env=prod

3voto

user3610279 Punkte 61

Verwendung von symfony 2.3 mit php 5.5 und Verwendung des eingebauten Servers mit

app/console server:run

die etwas wie ausgeben sollte:

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

dann gehen Sie zu http://127.0.0.1:8000/app_dev.php/app/example

Dies sollte Ihnen die Standardroute geben, die Sie auch finden können, indem Sie src/AppBundle/Controller/DefaultController.php ansehen

1voto

meze Punkte 14706

Präfix ist das Präfix für die Weiterleitung von URLs. Wenn es gleich '/' ist, bedeutet es, dass es kein Präfix hat. Dann haben Sie eine Route mit dem Muster "sie sollte mit /hello beginnen" definiert.

Um eine Route für '/' zu erstellen, müssen Sie diese Zeilen in Ihre src/Shop/MyShopBundle/Resources/config/routing.yml einfügen:

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X