2011-11-28 64 views
18

Symfony2返回當我嘗試運行http://localhost/app_dev.php時未找到「GET /」的路由,但此網址的工作原理爲:http://localhost/app_dev.php/hello/Symfony。我刪除了AcmeDemoBundle,並試圖從symfony2教程中運行示例包。哪裏不對 ?symfony 2未找到路由「GET /」

應用程序/配置/ routing.yml中:

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

應用程序/配置/ 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 /店/ MyShopBundle /資源/配置/ routing.yml中:

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

回答

20

問題是您沒有/的路由。將您的定義更改爲:

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

前綴是URL路由的前綴。如果它等於'/',則意味着它沒有前綴。然後你定義了一個模式爲「它應該以/ hello開頭」的路線。

要創建一個路線 '/',你需要在你的src /店添加這些行/ MyShopBundle /資源/配置/ routing.yml中:

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

以上的答案是錯的,分別AREN」回答爲什麼你在查看演示內容產品模式時遇到麻煩。

下面是正確答案:清除你的「刺」 -cache:

php app/console cache:clear --env prod 
+0

我現在一樣,我跟所有的建議,但沒有奏效。我想所有回答都已過時。 – samayo

+0

今天我們所擁有的記憶,激活annoations我們包的config.yml文件註釋: 所有: 資源:「@ OurBundle /控制器/」 類型:註釋 – Nico

+0

感謝編輯傑弗裏 – bacbos

5

這對我的工作:

cache:clear --env=prod 
3

使用symfony的2.3 PHP 5.5,並使用內置的服務器

app/console server:run 

應輸出類似:

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

然後去http://127.0.0.1:8000/app_dev.php/app/example

這應該給你默認,你也可以通過查看src/AppBundle/Controller/DefaultController.php找到默認路由

1

我本來可能只是一個犯了這個錯誤,但也許不是我會發布。

format for annotations在註釋之前,路線必須以斜槓開始並且兩個星號。我犯了一個斜線的錯誤,只有一個星號,PHPStorm自動完成。

我的路線是這樣的:

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

時,它應該是這個

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