質問
symfony2は、実行しようとするときに「get /」のルートが見つかりません http://localhost/app_dev.php, 、しかし、このURLは機能します: http://localhost/app_dev.php/hello/symfony. 。 AcmedeMobundleを削除し、Symfony2チュートリアルから例のバンドルを実行しようとしています。なにが問題ですか ?
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
解決
問題は、あなたがのルートを持っていないことです /
. 。これに定義を変更します:
ShopMyShopBundle_homepage:
pattern: /
defaults: { _controller: ShopMyShopBundle:Main:index }
requirements:
_method: GET
他のヒント
上記の回答はそれぞれ間違っています。それぞれ、デモコンテンツ製品を見るのに問題がある理由に答えていません。
これが正しい答えです:あなたの「prod」をクリアする-cache:
php app/console cache:clear --env prod
私のためのこの仕事:
cache:clear --env=prod
PHP 5.5でSymfony 2.3を使用し、組み込みのサーバーを使用して
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を表示することで、デフォルトルートを見つけることもできます。
プレフィックスは、URLルーティングのプレフィックスです。 '/'に等しい場合、プレフィックスがないことを意味します。次に、「 /helloで開始する必要がある」パターンでルートを定義しました。
'/'のルートを作成するには、これらの行をSRC/SHOP/MYSHOPBUNDLE/RESOASHN/CONFIG/ROUTING.ymlに追加する必要があります。
ShopMyShopBundle_homepage:
pattern: /
defaults: { _controller: ShopMyShopBundle:Main:index }
私はこの間違いを犯した人だけだったかもしれませんが、多分そうではないでしょう。
注釈用の形式 ルートがスラッシュから始めなければならない前のコメントで 2 アスタリスク。私はスラッシュの間違いを犯していて、1つのアスタリスクしかありませんでした。
私のルートは次のように見えました:
/*
* @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');
}
また、そのエラーを試しましたが、hello/nameが必要なパスであるため、/hello/hello/Anyの名前だけで正しく入手しました
例:ただ置く代わりに http://localhost/app_dev.php
このように置いてください http://localhost/name_of_your_project/web/app_dev.php/hello/ai
こんにちはaiが表示されます。私はあなたの質問に答えることを願っています。